Logging to syslog
Problem
You want to send your log entries to syslog.
Solution
To log your error log to syslog, simply tell Apache to log to syslog:
ErrorLog syslog:user
Note
Some other syslog reporting
class than user, such as local1
might be more appropriate in your environment.
Logging your access log to syslog takes a little more work. Add the following to your configuration file:
CustomLog |/usr/local/apache/bin/apache_syslog combined
Where apache_syslog is a program that looks like the following:
#!/usr/bin/perl
use Sys::Syslog qw( :DEFAULT setlogsock );
setlogsock('unix');
openlog('apache', 'cons', 'pid', 'user');
while ($log = <STDIN>) {
syslog('notice', $log);
}
closelog;Discussion
There are several compelling reasons for logging to syslog. The first of these is to have many servers log to a central logging facility. The second is that there are many existing tools for monitoring syslog and sending appropriate notifications on certain events. Allow Apache to take advantage of these tools, and your particular installation may benefit. Also, in the event that your server is either compromised, or has some kind of catastrophic failure, having logfiles on a dfferent physical machine can be of enormous benefit in finding out what happened.
Apache supports logging your error log to syslog by default. This is by far the more useful log to handle this way, since syslog is typically used to track error conditions, rather than merely informational messages.
The syntax of the ErrorLog directive ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access