如何更改 PHP Monologger 创建的日志文件的默认文件权限?
How do I change the default file permissions for log files created by PHP Monologger?
Laravel 文档显示您可以通过将以下代码放入 bootstrap/app.php 文件来为您的 Monologger 定义自定义配置:
$app->configureMonologUsing(function($monolog) {
$monolog->pushHandler();
});
它们可能的自定义配置和语法是什么?
我想将每日日志文件的默认权限更改为 664 而不是默认的 644,以避免应用程序中出现 'Permission denied' 问题。
作为个人意见,我会避免更改文件权限。我通常做的是为需要写入日志的用户创建一个不同的日志文件。您最终会得到更多文件,但至少您知道要查找哪个文件。
<?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);
});
...
查看这些链接了解更多信息:
- Laravel daily log created with wrong permissions
- http://laravel.io/forum/02-11-2014-howto-log-with-mongodb
对于FileHandler
和RotatingFileHandler
,您可以在构造期间轻松设置权限。对于 RotatingFileHandler,您必须设置一个可选参数。这些是参数:
($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false)
像这样的代码对你有用:
$handler = new Monolog\Handler\RotatingFileHandler($filename,0,Logger::DEBUG,true,0664);
Laravel 文档显示您可以通过将以下代码放入 bootstrap/app.php 文件来为您的 Monologger 定义自定义配置:
$app->configureMonologUsing(function($monolog) {
$monolog->pushHandler();
});
它们可能的自定义配置和语法是什么?
我想将每日日志文件的默认权限更改为 664 而不是默认的 644,以避免应用程序中出现 'Permission denied' 问题。
作为个人意见,我会避免更改文件权限。我通常做的是为需要写入日志的用户创建一个不同的日志文件。您最终会得到更多文件,但至少您知道要查找哪个文件。
<?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);
});
...
查看这些链接了解更多信息:
- Laravel daily log created with wrong permissions
- http://laravel.io/forum/02-11-2014-howto-log-with-mongodb
对于FileHandler
和RotatingFileHandler
,您可以在构造期间轻松设置权限。对于 RotatingFileHandler,您必须设置一个可选参数。这些是参数:
($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false)
像这样的代码对你有用:
$handler = new Monolog\Handler\RotatingFileHandler($filename,0,Logger::DEBUG,true,0664);