【问题标题】:Using configureMonologUsing after Laravel 5.7 upgrade - Supervisor Logging PermissionLaravel 5.7 升级后使用 configureMonologUsing - 主管日志记录权限
【发布时间】:2019-07-18 05:43:25
【问题描述】:

我正在尝试将我的 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-{日期},

  • 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 文件夹?

【问题讨论】:

标签: php laravel logging laravel-5.7 supervisord


【解决方案1】:

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

Laravel 5.6.10 及更高版本支持 singledaily 驱动程序的配置 (config/logging.php) 中的 permission 元素:

    '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 中添加了支持。

【讨论】:

    猜你喜欢
    • 2018-08-10
    • 2017-11-29
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多