====== ログ出力 - monolog ====== Version 2.0 ([[https://github.com/Seldaek/monolog/blob/master/LICENSE|MIT License]]) --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-03-11// [[basic-library:top|定番ライブラリー に戻る]] 関連記事 * [[basic-library:project|プロジェクトの作成 - Apricot (α版)]] * [[basic-library:phpdotenv:4.1|環境変数 - phpdotenv]] * ログ出力 - monolog * [[basic-library:idiorm:1.5|ORマッパー - Idiorm]] * [[basic-library:bladeone:3.37|テンプレートエンジン - BladeOne]] * [[basic-library:fast-route:1.3|リクエストルーター - FastRoute]] * [[basic-library:league-container:3.3|DIコンテナー - League/Container]] * [[basic-library:valitron:1.4|バリデーター - Valitron]] * [[basic-library:whoops:2.7|エラーハンドラー - Whoops]] * [[basic-library:php-debugbar:1.16|デバッグ出力 - php-debugbar]] サイト * https://github.com/Seldaek/monolog --- monologの本家 テストプログラムの所在 {Project Folder}\test\ ---- ===== monologについて ===== Monologは、ファイル、ソケット、メール、Webサービスまたはデータベースなどの様々な場所にログ出力できます。これら出力先へのロギングは「ハンドラ」と呼ばれるインスタンスによって処理され、1つのロガーに対して複数のハンドラを登録できるます。また、ロガーは「チャネル」と呼ばれる単位で複数の作成が可能です。このように、複数ハンドラ・複数チャネルの非常に高度なロギング戦略を構築できます。 Monologは、LaravelやSymfonyなどのPHPフレームワークで採用されている事を考えれば、ロギングについてはMonolog以外に考えられません。 \\ ===== インストール ===== composer require monolog/monolog Using version ^2.0 for monolog/monolog ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 2 installs, 0 updates, 0 removals - Installing psr/log (1.1.2): Downloading (100%) - Installing monolog/monolog (2.0.2): Downloading (100%) monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server) monolog/monolog suggests installing elasticsearch/elasticsearch (Allow sending log messages to an Elasticsearch server via official client) monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib) monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required)) monolog/monolog suggests installing ext-mongodb (Allow sending log messages to a MongoDB server (via driver)) monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server (via library)) monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB) monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar) monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome) Writing lock file Generating autoload files 1 package you are using is looking for funding. Use the `composer fund` command to find out more! >Note: >Eclipse起動中にパッケージを取得した場合は、プロジェクト・エクスプローラー内の[プロジェクト(apricote)]を右クリックして[リフレッシュ]を選択して下さい。また、新しく取得したパッケージのインテリセンスが有効にならない場合は、プロジェクトのビルトまたはクリーン&ビルドを行ってビルドリストの更新を行って下さい。 パッケージの取得が終わると ''composer.json'' の ''require'' に以下が追加されます。 { "require": { "monolog/monolog": "^2.0" } } \\ ===== テストプログラム ===== パッケージのテストフォルダ(''test\'')に、テスト用のコード(''monolog.php'')を作成し実行します。以下の例では、''test\var\logs\app.log'' にログファイルが出力されます。 pushHandler($stream); // ログフォーマット設定 // ログ内の改行を許可、付加情報が空の場合無視する $stream->setFormatter(new LineFormatter(null, null, true, true)); // ログ出力 /////////////////////////////// $log->error('Errorメッセージ'); $log->warning('Warningメッセージ'); $log->info('Infoメッセージ'); $log->debug('Debugメッセージ'); echo 'Hello Monolog!'; === 実行結果 === [2020-03-20T02:05:26.435346+01:00] APRICOT.ERROR: Errorメッセージ [2020-03-20T02:05:26.436812+01:00] APRICOT.WARNING: Warningメッセージ [2020-03-20T02:05:26.437220+01:00] APRICOT.INFO: Infoメッセージ [2020-03-20T02:05:26.437657+01:00] APRICOT.DEBUG: Debugメッセージ