I'm running a local web (development) server on my mac with apache installed.

I'm sure it depends on my apache config but basically I just want to run tail -f /var/log/httpd-error.log in a terminal so I can see the error and warnings that occur during the development of my websites.

So my question is where or how do I find where this log file is placed since it is not placed in /var/log/

6 Answers 6


As morth pointed out, for the default Mac OS X Apache installation these are located in: /var/log/apache2/error_log.

The location can be changed in the httpd config using the ErrorLog directive, even for individual virtual hosts. Also note that if you installed another Apache besides the built-in one (like through MacPorts, or MAMP), this probably is different for you too. In that case you should have a look at the httpd.conf or equivalent for your installation.

tip: If you have Growl installed, also have a look at this 'growltail' script. I think it's great to get notified of errors while developing, without having the need to switch back to the Terminal all the time.

  • 3
    Doesn't lion use apache2 and not apache in /var/log to contain the web server logs? Also, the Console app in /Applications/Utilities is the "Cocoa" log viewer, but it's not as handy as tail for most developers other than to explore the contents of /var/log or peek at multiple logs for short durations.
    – bmike
    Feb 20, 2012 at 15:01

The answers above work great for the default apache that comes pre-installed on the mac. In my case, I'm using Apache (on High Sierrra) installed via Homebrew. Here's the procedure I used to locate my error log:

>ps -ef |grep httpd

This gives an output with lines like this:

502 10587 10586   0 11:11AM ??         0:00.00 /usr/local/opt/httpd/bin/httpd -k start

That gives you the location of the httpd executable. Now run:

>/usr/local/opt/httpd/bin/httpd -V

Substituting in the location of your httpd executable. You'll get something like this (shortened)

Server compiled with....
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D HTTPD_ROOT="/usr/local/Cellar/httpd/2.4.29_1"
 -D SUEXEC_BIN="/usr/local/opt/httpd/bin/suexec"
 -D DEFAULT_PIDLOG="/usr/local/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/usr/local/etc/httpd/mime.types"
 -D SERVER_CONFIG_FILE="/usr/local/etc/httpd/httpd.conf"

So the "DEFAULT_ERRORLOG" is in logs/error_log - but relative to what?


There, I found two entries that might be helpful:

ServerRoot "/usr/local/opt/httpd"
ErrorLog "/usr/local/var/log/httpd/error_log"

So in some cases the DEFAULT_ERRORLOG might be relative to ServerRoot. In my case though, there was an ErrorLog explicitly specified (second line) and that's where my errors are going.

  • This is exactly what I needed. Thank you Witt!
    – Nick K9
    Feb 21, 2020 at 21:25
  • joined the community only to upvote your answer. All other answers just talk about the default log path setup by the default apache that comes pre installed. This is the generic way to figure out regardless of whether you use pre-installed apache or the one installed with brew. Thanks mate!
    – Fr0zenFyr
    Mar 31, 2021 at 8:22

Is /private/var/log/apache2/error_log what you are looking for?


The Error Log is located at: /var/log/apache2/error.log

This is for Lion...


It's normally /var/log/apache2/error_log but...

Note that there's certain types of errors which can occur before apache starts logging, which might lead you to believe that you're looking in the wrong place. If you seem to be having trouble starting apache, and it's not logging any new errors, try doing:

sudo bash -x /usr/sbin/apachectl -k start

or try

sudo apachectl -e debug

or bypass the apachectl script and try just

sudo httpd -k start
#/usr/sbin/httpd -V
Server version: Apache/2.2.24 (Unix)
Server built:   Aug 24 2013 21:10:43
Server's Module Magic Number: 20051115:31
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

#find / -name error_log
  • This answer is correct. However, it could have garnered more upvotes if some explanation was included to say what needs to be done with the output. Anyway, my vote is counted though.
    – Fr0zenFyr
    Mar 31, 2021 at 8:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .