我正在尝试将我的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-根 - {日期},
- laravel-CLI-ubuntu- {日期},
- laravel-CLI-WWW-DATA- {日期},
- laravel-fpm-fcgi-www-data- {date}等...
然而,它在upgrade guide说,所以我不能再使用configureMonologUsing
:
configureMonologUsing
方法如果您使用configureMonologUsing方法为应用程序自定义Monolog实例,则现在应该创建自定义日志通道。有关如何创建自定义渠道的更多信息,请查看full logging documentation。
我无法弄清楚如何通过记录通道实现相同的功能。如何利用Monolog Channel编写laravel / storage / logs文件夹?
取自https://stackoverflow.com/a/49379249/4705339
Laravel 5.6.10及更高版本在permission
和config/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中添加了支持。