Is it possible to create Custom Error Log in Apache 2.2?

Solution 1:

For piping see the ErrorLog directive and Piped Logs official manual entries which explain it pretty well.

Getting a custom error log format is more difficult. You can customize the access log easily with LogFormat but there is nothing built in for modifying the error log format. I did come across CGI::Carp which is a Perl module for outputting to the error log. Finally, there is always modifying the Apache source code directly depending on how badly you want this feature.

Solution 2:

In Apache 2.2 you cannot change the format of error_log easily - see http://httpd.apache.org/docs/2.2/logs.html#errorlog.

Apache 2.4 adds this support. See http://httpd.apache.org/docs/2.4/logs.html#errorlog.

Solution 3:

With Apache 2.4 you can use the ErrorLogFormat directive.

Syntax: ErrorLogFormat [connection|request] format

Simple example

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

Example (default format for threaded MPMs)

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

Example (similar to the 2.2.x format)

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

Advanced example with request/connection log IDs

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"

Source: ErrorLogFormat Directive