如何更改PHP Monologger创建的日志文件的默认文件权限?

时间:2016-06-14 09:30:09

标签: php laravel logging permissions monolog

Laravel文档显示您可以通过将以下代码放入bootstrap / app.php文件来定义Monologger的自定义配置:

    $app->configureMonologUsing(function($monolog) {
    $monolog->pushHandler();
});

有哪些可能的自定义配置&他们的语法?

我想将每日日志文件的默认权限更改为664而不是默认值644,以避免应用程序中出现“权限被拒绝”问题。

2 个答案:

答案 0 :(得分:2)

对于FileHandlerRotatingFileHandler,您可以在构造期间轻松设置权限。对于RotatingFileHandler,您必须设置一个可选参数。这些是参数:

($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false)

这样的代码将为您工作:

$handler = new Monolog\Handler\RotatingFileHandler($filename,0,Logger::DEBUG,true,0664);

答案 1 :(得分:1)

作为个人意见,我会避免更改文件权限。我通常做的是为需要写入Log的用户创建不同的日志文件。您最终会得到更多文件,但至少您知道要查找哪个文件。

<?php
...

$app -> configureMonologUsing(function ($monolog) {
  // Create a file name: laravel-user.log
  $filename = storage_path('logs/laravel-' . php_sapi_name() . '.log');
  // Pass that file name to your handler
  $handler = new Monolog\Handler\RotatingFileHandler($filename);
  $monolog -> pushHandler($handler);
});

...

有关详细信息,请参阅以下链接: