LoginSignup
3
1

More than 5 years have passed since last update.

【Lumen】Logファイルを日付ごとで出力させる

Last updated at Posted at 2017-12-25

Log出力のための設定

LumenでLog出力を有効にするには $app->withFacades(); のコメントアウトを解除する必要があります。
単純にLog出力させるだけならこれだけでよさそうですが、日付単位でとなると、bootstrap\app.phpをいろいろ編集する必要があります。

bootstrap\app.php

app.php
<?php

require_once __DIR__.'/../vendor/autoload.php';

// 以下を追加する
+ use Monolog\Handler\RotatingFileHandler;
+ use Monolog\Formatter\LineFormatter;

~~~略~~~

// コメントアウトを解除
- // $app->withFacades();
+ $app->withFacades();

~~~略~~~

// 以下を追加
+ $app->configureMonologUsing(function($monolog) {
+     $handlers[] = (new RotatingFileHandler(storage_path('logs/api.log'))) 
+                     ->setFormatter(new LineFormatter(null, null, true, true));
+ 
+     $monolog->setHandlers($handlers);
+ 
+     return $monolog;
+ });

上記の設定後はstorage\logs以下に次のようにlogが吐き出されます。

WS000065.JPG

もしlog名を変更する場合はstorage_pathgapi.log部分を変更すればおk
[log名]-Y-m-d.logのように吐き出されます。)

ちなみにLineFormatterクラスの引数のデフォルト値は以下のようにセットされるようです。
(詳しくはLineFormatterクラスのコンストラクタ参照)

LineFormatter.php
public function __construct($format = null, $dateFormat = null, $allowInlineLineBreaks = false, $ignoreEmptyContextAndExtra = false)

この辺の引数を渡してやれば日付部分のフォーマットを変更できそうです。

参考

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1