====== ログ出力 - 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メッセージ