What is the ErrorLog directive in Apache?

The ErrorLog directive in Apache HTTP Server is a core configuration command that determines where the server sends its diagnostic messages and error records. This article explains its primary purpose, how to configure it, and why it is an essential tool for web server administrators diagnosing website issues or monitoring server health.

The Core Purpose of ErrorLog

When Apache encounters an issue—whether it is a broken link, a missing file, a configuration misstep, or a severe server crash—it needs a place to record that event. The ErrorLog directive specifies the file path or system log location where Apache will write these messages. Without this directive, troubleshooting server errors would be nearly impossible, as administrators would have no visibility into internal server failures.

Syntax and Configuration

The directive is typically placed within the main server configuration file (such as httpd.conf or apache2.conf) or inside specific <VirtualHost> blocks to separate logs for different websites.

The basic syntax requires the directive followed by the destination path:

ErrorLog "/var/log/apache2/error_log"

In this setup, all errors are sent to a standard file on the disk. However, Apache also allows logs to be piped to an external logging program or sent directly to the system logger (syslog) using the following formats:

  • File Path: A relative or absolute path to a local file.
  • Pipe (|): Sends log entries to a program for real-time processing or rotation (e.g., ErrorLog "|/usr/bin/rotatelogs /var/log/apache2/error_log 86400").
  • Syslog: Diverts the logs to the operating system's standard logging facility (e.g., ErrorLog syslog).

How ErrorLog Works with LogLevel

The ErrorLog directive does not work alone; it is closely tied to the LogLevel directive. While ErrorLog defines where the logs go, LogLevel defines how much detail is recorded.

Administrators can adjust the verbosity from emerg (most critical, server unusable) down to debug (verbose, used for troubleshooting specific bugs). By default, Apache usually filters out low-priority messages to prevent the log file from growing too large too quickly, ensuring that only meaningful warnings and errors clutter the file.

Why it Matters for Administrators

Monitoring the error log is a fundamental practice in web server management for several key reasons:

  • Debugging Sites: It reveals broken PHP scripts, permission denied errors, and missing .htaccess files.
  • Security Monitoring: It flags unauthorized access attempts, malicious scan patterns, or failing authentication mechanisms.
  • Performance Tracking: It captures internal resource limits, such as a maximum child process limit being reached, allowing admins to scale their infrastructure appropriately.