目次
PHPフレームワークのロギングシステム、PHPフレームワークロギングシステム
引用
はじめに
1. php
2. ロギング関連ライブラリ
ホームページ バックエンド開発 PHPチュートリアル PHP フレームワークのロギング システム、PHP フレームワーク ロギング システム_PHP チュートリアル

PHP フレームワークのロギング システム、PHP フレームワーク ロギング システム_PHP チュートリアル

Jul 13, 2016 am 10:11 AM
php

PHPフレームワークのロギングシステム、PHPフレームワークロギングシステム

私は今、会社で PHP バックエンド開発プログラマーとして働いています (私たちのチームにはフロントエンドがないので、活動するときにフロントエンドのことを行います)。最初に会社に来たときは、時間がかかりました。フロントエンドとバックエンドのアクティビティを実行するのに 2 週間 (当時はできなくて、週末 2 日残業しなければならなかったのを覚えています...、、、) もう 4 か月以上になります。もちろん、あまり複雑ではないアクティビティは午後 1 日で完了できます。もちろん、これを行う場合は、拡張性や再利用性など、多くのことを考慮します。小さなプラグインに似ているため、高速になります。 。 。 。 。 。しかし、一日中「要件に沿って立ち上がって要件を実行する」のは非常に悪いことであることがわかりました。この方法では、システムやフレームワークのことを学ぶことができなくなります。なぜなら、些細な要件に囚われて、重要な部分を実行する時間がなくなるからです。そして、同僚や上司があなたがそれらのことをすることに慣れていると、技術的な内容はないがやらなければならないことに遭遇するたびに、ためらうことなくそれをあなたに押し付けます(利己的に言えば、プログラマーは誰でも同じです)。 (私と同じように、プログラマとしての誇りを持てるように、技術的な内容を習得したいのです)、時間が経つと慣れてしまいます...これは本当に悲惨なので、削除します時間をかけてフレームワークの内容を学習し、単純なプログラマーにならないようにしてください。

引用

PHP フレームワークに触れたことのある友人は、プロジェクトにおけるログの重要な役割を知っているかもしれません。これは、エラーの場所を特定し、プログラムをより使いやすくするのに役立ちます (適切に処理されれば、直接エラーがスローされることはありません)。エラーが多い(プログラマのみ)実際は英語で動いています)、デバッグ中に非常に便利で、重要な操作などを記録することもできます。つまり、完全なプロジェクトにログシステムがなければ、開発ロードは長くなります。とげと穴だらけになるでしょう、間違いなくつまずくでしょう。

はじめに

PHP ログ システムをマスターするには、まずこれらのことを完全に理解する必要があります。

1. php

のいくつかの機能

1 set_Exception_handler(callback $Exception_handler); //例外キャプチャカスタムハンドラー関数の登録

1 set_error_handler(callback $error_handler); //エラーキャプチャカスタムハンドラー関数の登録

1 register_shutdown_function(callback $callback); //プログラム実行時の異常終了エラーキャプチャハンドラ関数の登録

これら 3 つの関数は、開発者にエラー処理制御において多くの自主性を提供し、ログ システムにログ情報を記録する責任を負います。

プログラムで例外が発生すると、PHP カーネルは例外エラーをスローし、例外処理関数が登録されている場合、PHP によってスローされた例外はカスタム登録された例外に転送されます。例外キャッチ関数。この関数には実行する必要のある処理が含まれており、エラー情報 (エラーの詳細とエラーの場所を含む) が記録されます。この関数が例外を処理した後、例外は終了します。

プログラム内でエラーが発生した場合、登録したエラー処理関数はエラー情報を関数内のエラー例外オブジェクトに変換し、例外処理関数に渡します。これが最初のステップの $Exception_handler 関数です。

再開時にシャットダウンエラーが発生した場合、登録した異常終了処理関数が実行され、error_get_last()により前回のシャットダウン時のエラーオブジェクトを取得し、前項と同様にエラー例外オブジェクトを生成します。このオブジェクトは、登録された例外ハンドラー関数に渡されます。

実際には、例外であってもエラーであっても、自身の情報を例外処理関数が認識する例外情報に変換して、例外処理関数に渡して処理していることが分かります。例外情報は、化粧をした女性のようなものです。例外ハンドラは、非例外情報がロードおよびアンロードされるときのみ、例外情報を認識しません(正確には、非例外情報はそれ自体で例外情報に変換されます)。スローされたか) 例外ハンドラーはそれを認識できますか。

PHP フレームワークのロギング システム、PHP フレームワーク ロギング システム_PHP チュートリアルPHPログシステムのエラー処理プロセス

そこで質問になりますが、これらの関数は通常、例外処理クラス ライブラリとエラー ログ クラス ライブラリで動作します。例外処理クラス ライブラリには、登録される 3 つの関数と、$Exception_handler で呼び出されるログ クラス ライブラリが含まれています。ログファイルを合理的に記録して配置するため。上記の関数は通常、次のようにプログラムフレームワークの入り口でロードされ、登録されます。

ここではarray(class,function)メソッドが使用されています。

リーリー

2. ロギング関連ライブラリ

最初の部分で紹介したものは例外、エラー、シャットダウンのみをキャプチャします。これは最初のステップにすぎません。次に、ログ情報をローカル ファイル システムに記録するなど、キャプチャされた情報を適切に処理する必要があります。操作は array("MyException", "ExceptionHandler")) 内にあり、ログ クラス ライブラリが使用されます。 (以下で説明するクラス ライブラリは、kohana ログ システムの設計を利用しています)。

日本語形式のログもファイルの最後に情報を追加するだけで簡単に実装できると思いますが、設計が必要です。便利で効率的で拡張されたロギング クラス ライブラリですが、これはそれほど単純ではありません。長期にわたる実践、要約、最適化が必要です。kohana フレームワークのロギング ライブラリは比較的成熟しているため、ここで参照できます。

kohana を使用したことのあるユーザーは、kohana フレームワークでのログインについてよく知っていると思います。詳しくなくても問題ありません。アプリケーションの 109 番で簡単に説明します。 kohana ソース コードの bootstrap.php ファイル — 112 行目に次のコードがあります:

リーリー

これは、log オブジェクトlogging オブジェクト を追加するものです。オリーブ色の背景を持つ 2 つは、kohana では 2 つの部分に分かれていることに注意してください。ログ オブジェクトは、ログ オブジェクトのリストを維持するために使用されます。これは実際には 1 つ以上のログ オブジェクトを含むコンテナのようなものです (これは 2 番目の部分です。これらのログ オブジェクトがログの実際のソースです)。オブジェクト)、ログ)、および各オブジェクトについて記録されるエラー レベルの配列。エラー レベルが満たされていない場合は省略されます。名前を変更した後の私自身の簡略化されたロギング方法は次のとおりです:

リーリー

ここでわかりやすくするために、「コンテナ」に Log という名前を付け、記録されたインスタンスに Logwriter という名前を付けました。最初のログ タイプは、すべてのエラーをエラー番号とともに記録するものです。 Log::DEBUG より小さいエラー (エラー レベルがそれより高い) は、ルールに従って ./data/debug フォルダーに記録されます。2 番目は Log::NOTICE 以上の記録レベルのエラーです。配列を渡すだけで、必要に応じてエラー ログを追加し、別のログ ディレクトリに分割できると思います。 :

PHP フレームワークのロギング システム、PHP フレームワーク ロギング システム_PHP チュートリアル3. 例の概要

この時点で、ログ システムについて一般的に理解しているはずです。すでに使用する「ログ システム」を作成できます。これは、次の github アドレスを含む「ログ システム」の例を見てみましょう。必要に応じてコードと例を参照してください。

https://github.com/AizuYan/phplog.gitPHP フレームワークのロギング システム、PHP フレームワーク ロギング システム_PHP チュートリアルこの記事の著作権は作者(luluyrt@163.com)とブログパークに帰属し、作者の許可なく転載することを禁じます。記事を転載する場合は、記事内に著者へのリンクと原文を含める必要があります。ページ上のわかりやすい場所にリンクを記載しないと、当社は法的責任を追及する権利を留保します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/927207.html技術記事 PHP フレームワークのロギング システム、PHP フレームワークのロギング システム。現在、私は会社で PHP バックエンド開発プログラマーとして働いています (私たちのチームにはフロントエンドがないため、活動を行う際にはフロントエンドのことを行います)。入社したばかりです...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles