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

Posted

技术标签:

【中文标题】如何更改 PHP Monologger 创建的日志文件的默认文件权限?【英文标题】:How do I change the default file permissions for log files created by PHP Monologger? 【发布时间】:2016-10-14 22:56:45 【问题描述】:

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

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

它们有哪些可能的自定义配置和语法?

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

【问题讨论】:

【参考方案1】:

对于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);

【讨论】:

【参考方案2】:

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

<?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

【讨论】:

以上是关于如何更改 PHP Monologger 创建的日志文件的默认文件权限?的主要内容,如果未能解决你的问题,请参考以下文章

Excel,创建自动保存/更改日志,如何?

如何创建触发器以将更改事件添加到审核日志表中

如何从 Codeanywhere 查看 PHP 错误日志?

如何在PHP中写入错误日志文件[关闭]

php Spatie活动日志值更改

如何更改 Git 日志日期格式