Laravel 5.7升级后使用configureMonolog-管理员日志记录权限

时间:2019-02-24 19:34:47

标签: php laravel logging laravel-5.7 supervisor

我正在尝试将Laravel 5.5项目升级到5.7。我使用超级用户,并且在使用configureMonologUsing()生成日志之前,但显然在5.6升级中,它已经贬值了。我在L5.5中的完整代码是:bootstrap / app.php:

$app->configureMonologUsing( function( Monolog\Logger $monolog) {
    $processUser = posix_getpwuid( posix_geteuid() );
    $processName= $processUser[ 'name' ];

    $filename = storage_path( 'logs/laravel-' . php_sapi_name() . '-' . $processName . '.log' );
    $handler = new Monolog\Handler\RotatingFileHandler( $filename );
    $monolog->pushHandler( $handler );
});

它正在生成各种记录器,例如(很方便):

  
      
  • laravel-cli-root- {date},

  •   
  • laravel-cli-ubuntu- {date},

  •   
  • laravel-cli-www-data- {date},

  •   
  • laravel-fpm-fcgi-www-data- {date}等...

  •   

但是,它在upgrade guide中说,所以我不能再使用configureMonologUsing

  

configureMonologUsing方法

     

如果使用configureMonologUsing方法为应用程序自定义Monolog实例,则现在应创建一个自定义日志通道。有关如何创建自定义渠道的更多信息,请查看full logging documentation

我不知道如何通过日志记录通道实现相同的目标。如何使用Monolog Channel编写laravel / storage / logs文件夹?

1 个答案:

答案 0 :(得分:1)

来自https://stackoverflow.com/a/49379249/4705339

Laravel 5.6.10及更高版本在permissionconfig/logging.php驱动程序的配置(single)中支持daily元素:

    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
        'days' => 7,
        'permission' => 0664,    // this line lets the file owner to be www-data:www-data
    ],

无需在引导脚本中摆弄Monolog。

具体地说,在https://github.com/laravel/framework/commit/4d31633dca9594c9121afbbaa0190210de28fed8中添加了支持。