php ライブラリ「Monolog」を使ってログを出力する

php ライブラリ「Monolog」を使ってログを出力する

phpでライブラリ「Monolog」を使ってログを出力するまでのサンプルコードを記述してます。composerを使用して「Monolog」はインストールしてます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • PHP 7.4.5
  • Composer 1.10.5

※windows10にApacheのインストールはこちら
※windows10にphpのインストールはこちら
※Windows10にComposerのインストールはこちら

monolog/monologインストール

phpが動作しているフォルダで、composerを使用してインストールします。

composer require monolog/monolog

<出力結果>
Using version ^2.1 for monolog/monolog
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing monolog/monolog (2.1.0): 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)
Package mschop/noteephp is abandoned, you should avoid using it. Use mschop/notee instead.
Writing lock file
Generating autoload files
19 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

自分の場合は、下記にインストールしました。

monolog/monolog利用

「C:\Apache24\htdocs」に「test.php」を下記のコードで作成します。

<?php
ini_set('display_errors', "On");

require_once __DIR__ . '/vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// ログを作成(nameは識別用の名前)
$log = new Logger('name');
//Logger::WARNINGは書き込むログのレベル
$log->pushHandler(new StreamHandler('test.log', Logger::WARNING));

// ログを追加
$log->info('Hoge'); //warningよりレベルが低いので書き込まれません
$log->warning('Foo');

// ERRORメッセージに情報を添付
$errmsg = [
    "name" => "sebee",
    "company" => "sebee-company"
];
$log->error('Bar',$errmsg);

実行結果を確認すると、test.logというファイルが生成されlogが記述されていることが確認できます。