是否可以在 Apache 2.2 中创建自定义错误日志?

是否可以在 Apache 2.2 中创建自定义错误日志?

我想在我的 ErrorLog 中添加 vhost 名称,然后将其传输到我编写的程序中。

是否可以像访问日志一样写入自定义错误日志格式?

答案1

对于管道,请参阅错误日志指令和管道日志官方手册条目对此进行了很好的解释。

获取自定义错误日志格式更加困难。您可以使用轻松自定义访问日志,LogFormat但没有内置任何用于修改错误日志格式的功能。我确实遇到过CGI::鲤鱼这是一个用于输出到错误日志的 Perl 模块。最后,你总是可以直接修改 Apache 源代码,这取决于你有多需要这个功能。

答案2

在 Apache 2.2 中,你不能轻易改变 error_log 的格式 - 请参阅http://httpd.apache.org/docs/2.2/logs.html#errorlog

Apache 2.4 添加了此支持。请参阅http://httpd.apache.org/docs/2.4/logs.html#errorlog

答案3

使用 Apache 2.4 您可以使用该ErrorLogFormat指令。

句法:ErrorLogFormat [connection|request] format

简单示例

ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"

示例(线程 MPM 的默认格式)

ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

示例(类似于2.2.x格式)

ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"

带有请求/连接日志 ID 的高级示例

ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"

来源:ErrorLogFormat 指令

答案4

你可能正在寻找mod_log_debug

相关内容