Where are Apache file access logs stored?

Does anyone know where file access logs are stored, so I can run a tail -f command in order to see who is accessing a particular file.

I have XAMPP, which is an Apache server installed on my machine, which automatically logs the accesses. It is stored in my installation folder.

Asked By: AkshaiShah

||

Ultimately, this depends on your Apache configuration. Look for CustomLog directives in your Apache configuration, see the manual for examples.

A typical location for all log files is /var/log and subdirectories. Try /var/log/apache/access.log or /var/log/apache2/access.log or /var/log/httpd/access.log. If the logs aren’t there, try running locate access.log access_log.

If you can’t find the log with Gilles’s answer, there are a couple more things you can try.

  • Look in /var/log/httpd.
  • Run sudo locate access.log as well as sudo locate access_log. The logs on my system were not visible except to root, and the file was called access_log instead of access.log.
Answered By: Don Kirkby

Apache server records all incoming requests and all requests processed to a log file. The format of the access log is highly configurable. The location and content of the access log are controlled by the CustomLog directive. Default apache access log file location:

RHEL / Red Hat / CentOS / Fedora Linux Apache access file location –

/var/log/httpd/access_log

Debian / Ubuntu Linux Apache access log file location –

/var/log/apache2/access.log

FreeBSD Apache access log file location –

 /var/log/httpd-access.log

To find exact apache log file location, you can use grep command:

# grep CustomLog /usr/local/etc/apache22/httpd.conf
# grep CustomLog /etc/apache2/apache2.conf
# grep CustomLog /etc/httpd/conf/httpd.conf

Sample output:

# a CustomLog directive (see below).
#CustomLog "/var/log/httpd-access.log" common
CustomLog "/var/log/httpd-access.log" combined 
Answered By: hector adam

find Apache access.log file location on Debian / Ubuntu Linux

On my machine /etc/apache2/apache2.conf pointed to ${APACHE_LOG_DIR} environment variable instead of the log directory itself.

The following (additional) step has been required to find the actual log directory:

$ grep APACHE_LOG_DIR /etc/apache2/envvars
export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
$

envvars contains default environment variables for Apache.

Thus, to view the access log, use

$ sudo tail -f /var/log/apache2/access.log
Answered By: Dmytro Dzyubak
Categories: Answers Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.