Version 2.0 (MIT License)
— y2sunlight 2020-03-11
関連記事
サイト
テストプログラムの所在
{Project Folder}\test\
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
にログファイルが出力されます。
<?php require __DIR__.'/../vendor/autoload.php'; use Monolog\Logger; use Monolog\Formatter\LineFormatter; use Monolog\Handler\StreamHandler; // monologの初期化 //////////////////////// $log = new Logger('APRICOT'); // ログチャネルの作成 //////////////////////// $log_path = __DIR__.'/var/logs/app.log'; $log_level = Logger::DEBUG; $stream = new StreamHandler($log_path, $log_level); $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メッセージ