是否有可能在Apache 2.2中创build自定义错误日志?

我想在我的ErrorLog中添加虚拟主机的名字,然后将其写入我写的程序中。

是否可以使用Access日志来编写自定义错误日志格式?

有关pipe道,请参阅ErrorLog指令和Piped Logs官方手册条目,这些条目可以很好地解释。

获取自定义的错误日志格式比较困难。 您可以使用LogFormat轻松自定义访问日志,但没有内置修改错误日志格式的内容。 我遇到了CGI :: Carp ,它是一个用于输出到错误日志的Perl模块。 最后,总是直接修改Apache源代码,取决于你想要这个function的程度。

在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

使用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指令

您可能正在寻找mod_log_debug 。