LoginSignup
0
1

More than 5 years have passed since last update.

[memo]Laravel5.3 + ログファイル名の設定

Posted at

適当にヘルパーファイルを作って以下を記述


use Monolog\Logger;
use Monolog\Handler\RotatingFileHandler;

if ( !function_exists( 'custom_logs' ) ){

  /**
   * @param       $name  出力ファイルの名前
   * @param       $type
   */
  function custom_logs( $name, $type = 'yearly' ){
    if( empty( $name ) ){
      return;
    }
    //  ここの引数がはいる.INFO
    $log    = new Logger( $name );
    // 第一引数はログを吐き出すまでのパスと拡張子を指定
    $RotatingFileHandlerClass = new RotatingFileHandler( storage_path() . '/logs/.log', 0, Logger::INFO );
    $log->pushHandler( $RotatingFileHandlerClass );
    // setFilenameFormat の第一引数のファイル名に `{date}` を入れないとエラーになるようになったみたいなので、それを対応。
    // 第二引数もdate formatが必須に変わったのでsingleはコメントアウト
    switch( $type ){
      case 'daily':
        $RotatingFileHandlerClass->setFilenameFormat( mb_strtolower( $name ) . '_{date}', 'Y-m-d' );
        break;
      case 'monthly':
        $RotatingFileHandlerClass->setFilenameFormat( mb_strtolower( $name ) . '_{date}', 'Y-m' );
        break;
      case 'yearly':
        $RotatingFileHandlerClass->setFilenameFormat( mb_strtolower( $name ) . '_{date}', 'Y' );
        break;
//      case 'single':
//        $RotatingFileHandlerClass->setFilenameFormat( mb_strtolower( $name ) . '_{date}', '' );
//        break;
      default:
        break;
    }

    $log->addInfo( 'ここにログ内容' );

    return;
  }

}

あとはお好みで引数をいじってログに出したいデータを渡したり、date formatの部分やLogger::INFOを変数にしたりしてみるもいいかも。

0
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
0
1