如何在CodeIgniter中禁用特定控制器的日志记录?

时间:2018-11-07 14:11:31

标签: codeigniter logging controller

我的Web应用程序有许多定时循环的Ajax请求,这些请求从不同的控制器获取内容,并将我的每日日志大小增加到2 GB。是否有一种方法仅在调用特定控制器时才禁用日志记录?应该在控制器的第一个实例上禁用日志记录,然后在调用load-> view方法之前重新启用日志记录。

1 个答案:

答案 0 :(得分:1)

您可能知道错误记录阈值是

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

您应该可以使用以下内容关闭登录。

$ this-> config-> set_item('log_threshold',0);

如果您希望其所有方法停止记录,则可以在特定的控制器方法中或在控制器构造函数中完成。

要恢复日志记录,即在“所有邮件”级别运行

$this->config->set_item('log_threshold', 4);

了解对config->set_item()的任何调用都不是持久的。该调用不会更改config.php的内容,因此下一次该站点收到请求时,它将使用配置文件中定义的日志阈值。

同样,如果在动态更改级别之后重新加载配置文件,它将覆盖动态分配的值。 AFAIK,CodeIgniter每个框架实例仅加载一次配置文件。但是开发人员有时会做一些奇怪的事情。