重要な概念 この記事では、柔軟なオープンソースロギングフレームワークであるLog4Phpを使用してPSR-3ロギング標準を実装する方法を示しています。 PSR-3は、ライブラリをロギングするための共通のインターフェイスを提供し、相互運用性と保守性を向上させます。 LOG4PHPの構成により、さまざまなログレベル(デバッグ、情報、エラーなど)をさまざまな出力宛先(ファイル、電子メールなど)にルーティングできます。
依存関係のセットアップ
コーディングする前に、必要な依存関係をインストールします。 PSR-3インターフェイスとLOG4PHPフレームワークが必要です。 このようなファイルは、プロセスを簡素化します:
composer.json
PSR-3に準拠したロガーの作成
{ "require": { "psr/log": "dev-master", "apache/log4php": "2.3.0" } }
このクラスは、8つのPSR-3ログレベルを処理し、6つのlog4phpレベルに変換されます(必要に応じて複数のPSR-3レベルをlog4PHPのにマッピングします)。
関数(PSR-3の実装の例から取得)は、ログメッセージ内のコンテキスト変数を処理します。 log4phpの設定<?php require_once 'vendor/autoload.php'; use Psr\Log\LoggerInterface as PsrLogLoggerInterface; use Log4php\Logger; class MyLogger implements PsrLogLoggerInterface { private $logger; public function __construct($loggerName = 'main', $configFile = null) { Logger::configure($configFile); $this->logger = Logger::getLogger($loggerName); } // ... (PSR-3 log level methods: emergency, alert, critical, error, warning, notice, info, debug) ... // Example method (others similar) public function error($message, array $context = array()) { $this->logger->error($this->interpolate($message, $context)); } // ... (log() method and interpolate() helper function remain unchanged) ... }
fatal
log4phpはデフォルトの構成を使用しますが、XMLまたはPHPでカスタマイズできます。 XML構成ファイル(interpolate()
)は、このように見えるかもしれません。
コンストラクターに渡します:
結論config.xml
<configuration xmlns="http://logging.apache.org/log4php/"> <appender name="myAppender" class="LoggerAppenderFile"> <param name="file" value="myLog.log"/> <layout class="LoggerLayoutSimple"/> </appender> <root> <level value="WARN"/> <appender_ref ref="myAppender"/> </root> </configuration>
MyLogger
よくある質問(明確さと簡潔さのために再フォーマットされた):
$logger = new MyLogger('main', 'config.xml'); $logger->debug('This debug message will be ignored.'); $logger->warn('This warning will be logged to myLog.log');
PSR-3の有意性:
PSR-3は、ロギングインターフェイスを標準化し、コードの変更なしでライブラリを簡単に交換できるようにします。
log4php:
Appender、Layout、およびLoggers(XML、PHP、またはPropertiesファイル)を構成し、メッセージをログに記録するロガーインスタンスを作成します。インストール: Apacheロギングサービスからダウンロードするか、Composer(
)。構成: xml、php、またはプロパティファイルを使用して、付録(出力宛先)、レイアウト(メッセージ形式)、およびロガー(ロギングエンティティ)を定義します。
複数の付属品:はい、複数の付録をロガーに割り当てて、さまざまな場所にログを送信します。
logレベル:、、debug
、info
、warn
、およびerror
さまざまな重症度レベルのメソッドを使用します。
fatal
を使用して、例外の詳細を記録します。
LoggerThrowablePatternConverter
PSR-3に準拠したフレームワーク(Laravel、Symfonyなど)で動作します
メッセージフォーマット:
以上がPHPマスター| log4phpを使用してPSR-3を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。