【问题标题】:php error log save date-wisephp错误日志按日期保存
【发布时间】:2015-07-30 23:05:20
【问题描述】:

我们要监控所有 php 错误。我们可以使用 error_log 文件检查所有错误。 错误日志文件变得如此沉重。

因此在error_log文件中检查错误非常困难。

是否可以在日期示例“19-05_2015_error.log”上写入 php error_log 文件

或者我们可以写出像“fetal.log”“notice.log”这样的错误

【问题讨论】:

  • Apache 标签在这个问题中起什么作用?您是使用 PHP 的 error_log 功能还是依赖 Apache 日志记录?
  • 我们依赖于 apache 日志记录

标签: php apache error-logging


【解决方案1】:

您完全可以在 PHP 中完成。一个流行的日志库是Monolog

【讨论】:

    【解决方案2】:

    要获取每日格式的日志 (19-05_2015_error.log),如果您在 UNIX 堆栈上,您可以使用 logrotate(但如果您在 Windows stack 上,它会有点复杂)。 有一些关于控制重复的有用提示和suppressing error messages

    【讨论】:

      【解决方案3】:

      据我所知,the mod_log_config module 不接受文件名变量,因此排除了最直接的可能性。您可以实际使用的基于 Apache 的解决方案基本上包括:

      也就是说,我认为 PHP 有相当不错的内置日志记录。您可以使用error_log() function(与例如date('Y-m-d') 一起)完全满足您的要求。您甚至可以为不同的错误类型定义不同的文件。当然,这不会捕获阻止 PHP 代码运行的错误(例如解析错误、请求超时......),但您可以将 error_log directive 设置为后备机制——这些情况应该很少见,可以保留日志文件易于管理。

      再想一想:确保您的开发工具箱启用了完整的错误报告功能(许多开发人员使用具有默认设置的第三方捆绑包并愉快地编写有错误的代码)。在生产服务器中记录如此多的错误是不正常的。

      【讨论】:

        【解决方案4】:

        您可以在应用程序开始时更改 PHP 配置,动态创建日志文件。

        <?php
        
        function logByDate(){
            $sPath = '/logs/application/PhpError_' . date('Y-m-d') . '.log';
            ini_set('error_log', $sPath);
        }
        
        // To validate only, it is not necessary
        echo 'Actual log ' . ini_get('error_log') . PHP_EOL; 
        
        logByDate(); //Call it at beginning
        
        // To validate only, it is not necessary
        echo 'Validate new log ' . ini_get('error_log') . PHP_EOL;
        

        【讨论】:

          猜你喜欢
          • 2012-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多