【问题标题】:Log errors to file but not display in Codeigniter将错误记录到文件但不显示在 Codeigniter 中
【发布时间】:2014-08-27 09:47:29
【问题描述】:

在生产环境中运行 Codeigniter 应用程序时,我希望能够记录特定 PHP 错误中的错误。问题在于,使用 CI 记录 PHP 错误需要将 CI 日志级别设置为错误或更高,从而将这些错误显示到屏幕上。在生产环境中,我想将这些错误记录到日志文件中,但不显示在屏幕上。

有没有人能够做到这一点?

【问题讨论】:

    标签: php codeigniter error-handling


    【解决方案1】:

    在 Codeigniter 版本 3.1.10 如果您想记录错误但又不想在生产环境的屏幕上显示它,

    然后您必须在主根文件index.php 中更改环境变量的值并搜索变量ENVIRONMENT 并进行更改。

    默认情况下如下:

    define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
    

    将其更改为:

    define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'production');
    

    现在错误不会显示在屏幕上,

    但是您想记录错误,因此您必须更改配置文件的 log 变量,该变量位于 application/config/config.php

    默认情况下会是:

    $config['log_threshold'] = 0;
    

    将其更改为:

    $config['log_threshold'] = 1;
    

    现在日志文件夹中的日志文件将按日期创建,您可以在其中看到记录的 php 错误。

    为log_threshold 变量解释的选项:

    0 = Disables logging, Error logging TURNED OFF
    1 = Error Messages (including PHP errors)
    2 = Debug Messages
    3 = Informational Messages
    4 = All Messages
    

    对于实时站点,您通常只会启用要记录的错误 (1),否则 您的日志文件会很快填满。

    【讨论】:

      【解决方案2】:

      我不确定,但我认为您需要将显示错误设置为 0 并将 error_reporting 设置为 e_all

      ini_set("display_errors",1);
      error_reporting(E_ALL);
      

      【讨论】:

      • 对不起,我应该提到我已经尝试过了,但 CI 错误处理程序忽略了这一点,并根据 log_threshold 值在屏幕上显示错误,仅此而已。
      【解决方案3】:

      在config/config.php中设置如下内容:

      $config['log_threshold'] = 4;
      
      $config['log_path'] = 'appropriate path of the file';
      

      您可以在应用程序中的任何位置放置以下行(例如在控制器、模型或助手中)。

      log_message('info', 'some message');
      

      执行应用程序后,将创建一个日志文件,名称为当前日期。

      如果您检查该文件,您将收到日志消息。

      如果您的消息正在打印,则意味着您的文件正在正确执行,直到它正在执行 log_message() 函数。您可以多次检查放置线并检查。

      希望我的回答有用。如果没有请评论。我会尽力解决你的问题。

      参考链接:https://ellislab.com/codeigniter/user-guide/general/errors.html

      【讨论】:

      • 谢谢,但我知道如何在 CI 中记录消息。我看不到如何在生产中记录错误,因此将这些错误保存到日志文件中,但实际上并未在屏幕上显示给最终用户。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 2015-06-25
      • 1970-01-01
      相关资源
      最近更新 更多