😄
Laravelでログの出力される日付のフォーマットを変更するメモ
Laravelでログの出力される日付のフォーマットを変更するメモ
Laravelでログの出力される日付のフォーマットを変更する方法を知ったのでメモ。
コード
- MonologのFormatterの第二引数に日付のフォーマットを与えるだけで変更ができる。
- フォーマットの最後のvはミリ秒まで取得できるらしい。
- datetimeの後にtimzezoneを書いておくとわかりやすくて良いかもしれない。
<?php
namespace App\Logging\Formatters;
use Illuminate\Log\Logger;
use Monolog\Formatter\LineFormatter;
class CustomFormatter extends LineFormatter
{
/**
* 出力されるログのフォーマット
*
* @var string
*/
protected $log_format = "[%datetime%
(JST)] %channel%.%level_name%: %message% %context% %extra%\n";
/**
* ログの日付フォーマット
*
* @var string
*/
protected $date = "Y/m/d H:i:s.v";
public function __invoke(Logger $logger): void
{
foreach ($logger->getHandlers() as $handler) {
$handler->setFormatter(new LineFormatter(
$this->log_format,
$this->date,
true,
true
));
}
}
}
Discussion