Increase Precision of Apache Log to Include Milliseconds

Better Stack Team
Updated on February 26, 2025

To increase the precision of Apache logs to include milliseconds, you need to customize the log format in Apache's configuration. Apache's default logging format does not include milliseconds, but you can modify it to include more precise timestamps.

Here's how to configure Apache to include milliseconds in the log timestamps:

1. Modify Apache Log Format

1.1 Locate Apache Configuration File

You need to edit the Apache configuration file where the LogFormat directive is defined. This is typically found in the main configuration file (httpd.conf) or in a virtual host configuration file.

For example:

  • Debian/Ubuntu: /etc/apache2/apache2.conf or /etc/apache2/sites-available/000-default.conf
  • Red Hat/CentOS: /etc/httpd/conf/httpd.conf or /etc/httpd/conf.d/ssl.conf

1.2 Update LogFormat

Add or modify the LogFormat directive to include the LogFormat syntax with milliseconds. Apache itself doesn’t directly support milliseconds, but you can use a combination of LogFormat and CustomLog with a custom log format.

For example, you might use the strftime format in combination with custom logging:

 
LogFormat "%{X-Request-Start}t %h %l %u %t \\"%r\\" %>s %b" combined
CustomLog ${APACHE_LOG_DIR}/access.log combined

In this example:

  • %{X-Request-Start}t includes the request start time with millisecond precision if X-Request-Start is set.

To include milliseconds, you can use the mod_log_config module's LogFormat directive with the %{VARNAME}t format. You may need to enable mod_log_config and use an extended format if available.

1.3 Custom Log Format Example

To explicitly include milliseconds, you might need to use a custom log format. Since Apache does not support millisecond precision directly in the %t format, you might use external scripts or modules to handle this.

2. Install and Use mod_log_config

mod_log_config is a module for customizing log formats. Ensure it is enabled:

 
sudo a2enmod log_config

Then, configure it to use a custom format that includes milliseconds. Note that direct support for milliseconds might require additional modules or external solutions.

3. Use a Logging Extension or External Script

If Apache's built-in logging does not meet your needs, you may use external tools or custom scripts to achieve millisecond precision:

3.1 Using a Logging Middleware

You can use a logging middleware or an external logging tool to handle millisecond precision:

  • ELK Stack: Use Filebeat or Logstash to parse Apache logs and include millisecond precision in the processed logs.
  • Custom Scripts: Write a custom script to parse and process log files to include milliseconds.

3.2 External Log Rotation

If you need more advanced features, consider using external tools like logrotate with custom scripts to add millisecond timestamps.

4. Restart Apache

After updating the configuration, restart Apache to apply the changes:

 
sudo systemctl restart apache2   # Debian/Ubuntu
sudo systemctl restart httpd     # Red Hat/CentOS

5. Verify Logging

Check the Apache log files to ensure that the changes have taken effect and that the log format now includes the desired timestamp precision.

 
tail -f /var/log/apache2/access.log   # Debian/Ubuntu
tail -f /var/log/httpd/access_log     # Red Hat/CentOS

Example Configuration for Millisecond Precision

To directly include milliseconds in the log format, you might need a more advanced approach involving external modules or tools, as native Apache configurations have limitations.

 
# Sample log format with milliseconds using external tools
LogFormat "%{X-Request-Start}t %h %l %u %t \\"%r\\" %>s %b" combined
CustomLog ${APACHE_LOG_DIR}/access.log combined

For more precise time handling, integrating Apache logs with an external log management system or using a dedicated log processing tool might be necessary.

Got an article suggestion? Let us know
Explore more
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.