CodeIgniter 2中的非格式化错误日志

时间:2015-04-17 06:52:35

标签: php codeigniter codeigniter-2 error-logging errorformat

我目前在CodeIgniter 2中运行websocket守护程序。该守护程序使用nohup启动并在永久循环中运行。错误输出格式为HTML。但是,我希望将错误记录为 而不使用HTML格式 。 CodeIgniter是否可以选择使其成为可能?

修改 我不仅跟踪错误。我还保存了websocket日志。该日志包含已运行的函数和其他有用信息。我不想隐藏日志中的错误,因为它们可能对跟踪某些错误很有用。我想记录我的自定义websocket消息以及可能发生的错误。

守护程序启动命令:

nohup php /usr/share/nginx/html/index.php websocket server > /var/log/websocket/$(date +"%Y%m%d_%H%M%S") 2>&1 &

日志中的错误如下所示:

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Notice</p>
<p>Message:  Undefined index: REMOTE_ADDR</p>
<p>Filename: core/Input.php</p>
<p>Line Number: 351</p>

1 个答案:

答案 0 :(得分:1)

我认为你把事情搞混了,有日志,而且页面/脚本产生了输出。

您正在做的是将脚本的输出保存到日志中,包括php错误,通知,警告和codeigniter错误(无法连接到数据库)。

据我所知,Codeigniter与PHP错误没什么关系,这意味着这种格式实际上来自php进程本身,据我所知,你不能阻止这种格式。 / p>

如果你想捕获所有错误,你可以抑制所有错误并使用php的本地error_get_last方法,这将返回如下内容:

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

但是,如果您遇到编译错误,此方法将无法工作,因为它需要首先编译代码。

Apache应该自动为你保存错误,我很确定可以在php.ini中配置但我暂时还没有完成。

总之,我并不认为将整个输出保存到日志中是跟踪错误的最佳方式。

参考文档:http://php.net/manual/en/function.error-get-last.php