Apache

Apacheログの場所と確認方法|error.log・access.log・LogLevel設定

Apacheのerror.log・access.logの場所と見方を解説します。MAMP・XAMPP・Ubuntu・RHELでの確認先、ErrorLog、CustomLog、LogLevel、LogFormat、apachectl、tail、VirtualHost、権限・ローテーションまで整理します。

この記事の目次
  1. 結論:ApacheログはErrorLogとCustomLogを確認する
  2. Apacheのエラーログの場所
  3. ErrorLogでエラーログの場所を確認する
  4. Apacheのアクセスログの場所
  5. CustomLogでアクセスログの場所を確認する
  6. Windows / XAMPP / MAMP / Linuxでログの場所が違う
  7. Apacheの設定ファイルからログの場所を探す
  8. 設定ファイルの場所をコマンドで確認する
  9. ErrorLogの設定方法
  10. VirtualHostごとにErrorLogを分ける
  11. CustomLogの設定方法
  12. combined形式でアクセスログを出力する
  13. LogLevelの使い方
  14. LogLevelの主な種類
  15. LogLevelは.htaccessには書けない
  16. LogFormatの基本
  17. LogFormatの主な記号
  18. ログの確認方法
  19. Macでログフォルダを開く
  20. Windowsでログフォルダを開く
  21. tail -Fでログをリアルタイムに確認する
  22. Windows PowerShellでログをリアルタイムに確認する
  23. apachectl・httpdコマンドで設定を確認する
  24. アクセスログ1行の読み方
  25. Apache以外のログへ出ている場合
  26. ログローテーションと安全性
  27. ログが出ないときに確認すること
  28. ログファイルの場所が違っていないか
  29. VirtualHost側で別のログが指定されていないか
  30. Apacheを再起動していない
  31. 設定ファイルに文法エラーがある
  32. ログファイルへの書き込み権限がない
  33. よくある質問
  34. Apacheのエラーログはどこにありますか?
  35. Apacheのアクセスログはどこにありますか?
  36. ErrorLogとCustomLogの違いは何ですか?
  37. LogLevelは何に設定すればよいですか?
  38. .htaccessにLogLevelやErrorLogは書けますか?
  39. まとめ
  40. 関連記事

Apacheを設定していると、リダイレクトが効かない、画面が真っ白になる、500エラーが出る、意図しないURLに飛ぶ、といったことがあります。

そのようなときは、まずApacheのログを確認すると、原因を見つける手がかりになります。

Apacheでよく確認するログは、大きく分けると次の2つです。

知りたいこと 見る設定 確認するログ
エラーの場所 ErrorLog エラーログ
アクセスログの場所 CustomLog アクセスログ
ログの詳しさ LogLevel エラーログの出力レベル
ログの形式 LogFormat アクセスログの出力形式

この記事では、Apacheのエラーログ・アクセスログの場所を確認する方法と、LogLevelErrorLogCustomLogLogFormat の基本的な設定方法を紹介します。

  • Apacheのエラーログの場所を確認したい
  • Apacheのアクセスログの場所を確認したい
  • MAMPやXAMPPのApacheログを見たい
  • LinuxサーバーのApacheログを確認したい
  • ErrorLogCustomLog の意味を知りたい
  • LogLevelLogFormat の基本を知りたい

このような場合の参考になると思います。

結論:ApacheログはErrorLogとCustomLogを確認する

Apacheのログを確認したい場合、まず見るべき設定は ErrorLogCustomLog です。

ErrorLog には、Apacheのエラー情報を出力するログファイルの場所を指定します。

ErrorLog "/Applications/MAMP/logs/apache_error.log"

絶対パスではなくlogs/error_logのような相対パスなら、ApacheのServerRootを基準に解決されます。

CustomLog には、アクセスログの出力先とログ形式を指定します。

CustomLog "/Applications/MAMP/logs/apache_access.log" common

つまり、Apacheのログを確認したいときは、まず設定ファイルの中で次の文字を探すのが早いです。

  • ErrorLog
  • CustomLog
  • LogLevel
  • LogFormat

MAMPやXAMPPなどのローカル環境では、設定ファイルに最初からログの場所が書かれていることが多いです。

Apacheのエラーログの場所

Apacheのエラーログの場所は、環境によって違います。

代表的な場所は次のようになります。

環境 エラーログの代表的な場所
MAMP(Mac) /Applications/MAMP/logs/apache_error.log
XAMPP(Windows) C:\xampp\apache\logs\error.log
MAMP(Windows) C:\MAMP\logs\apache_error.log
Ubuntu / Debian系 /var/log/apache2/error.log
CentOS / RHEL系 /var/log/httpd/error_log
HomebrewのApache /opt/homebrew/var/log/httpd/error_log など

ただし、実際のログの場所はApacheの設定によって変わります。

そのため、正確な場所を知りたい場合は、Apacheの設定ファイルで ErrorLog を確認するのが一番確実です。

ErrorLogでエラーログの場所を確認する

MAMPの場合、httpd.conf に次のような記述があります。

#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you do define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "/Applications/MAMP/logs/apache_error.log"

この場合、Apacheのエラーログは次のファイルに出力されます。

/Applications/MAMP/logs/apache_error.log

500エラーや設定ミス、モジュールの読み込みエラーなどを確認したい場合は、まずこのエラーログを見ます。

Apacheのアクセスログの場所

Apacheのアクセスログの場所も、環境によって違います。

代表的な場所は次のようになります。

環境 アクセスログの代表的な場所
MAMP(Mac) /Applications/MAMP/logs/apache_access.log
XAMPP(Windows) C:\xampp\apache\logs\access.log
MAMP(Windows) C:\MAMP\logs\apache_access.log
Ubuntu / Debian系 /var/log/apache2/access.log
CentOS / RHEL系 /var/log/httpd/access_log
HomebrewのApache /opt/homebrew/var/log/httpd/access_log など

アクセスログでは、どのURLにアクセスがあったか、ステータスコードは何だったか、どのブラウザからアクセスされたかなどを確認できます。

CustomLogでアクセスログの場所を確認する

MAMPの場合、httpd.conf に次のような記述があります。

#
# The location and format of the access logfile.
#
CustomLog "/Applications/MAMP/logs/apache_access.log" common

この場合、アクセスログは次の場所に出力されます。

/Applications/MAMP/logs/apache_access.log

アクセスログは、リクエストの確認やステータスコードの確認に便利です。

たとえば、リダイレクト設定を変更したあとに、リクエストがどのように処理されているかを確認したい場合に使えます。

Windows / XAMPP / MAMP / Linuxでログの場所が違う

Apacheのログの場所は、インストール方法や環境によって変わります。

そのため、ネットで見つけたログパスをそのまま使っても、自分の環境では見つからないことがあります。

Apacheの設定ファイルからログの場所を探す

ログの場所がわからない場合は、Apacheの設定ファイルで次の文字を検索します。

  • ErrorLog
  • CustomLog

MAMPなら、主に httpd.conf を確認します。

XAMPPでも、Apacheの設定ファイル内で ErrorLogCustomLog を探すと、ログファイルの場所を確認できます。

Linux系のサーバーでは、Apacheの設定ファイルが複数に分かれていることがあります。

たとえば、Ubuntu系では次のような場所を確認することがあります。

/etc/apache2/apache2.conf
/etc/apache2/sites-available/

CentOSやRHEL系では、次のような場所を確認することがあります。

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/

設定ファイルの場所をコマンドで確認する

Apacheの設定ファイルの場所がわからない場合は、次のようなコマンドで確認できます。

apachectl -V

環境によっては、次のように httpd コマンドを使います。

httpd -V

出力の中に、設定ファイルの場所に関する情報が表示されます。

Linuxでは、次のように絞り込むと見やすいです。

apachectl -V | grep SERVER_CONFIG_FILE

設定ファイルの場所がわかれば、その中で ErrorLogCustomLog を検索します。

ErrorLogの設定方法

ErrorLog は、Apacheのエラーログをどこに出力するかを指定するディレクティブです。

基本的な書き方は次のようになります。

ErrorLog "ログファイルのパス"

MAMPの場合は、次のように書かれていることがあります。

ErrorLog "/Applications/MAMP/logs/apache_error.log"

この設定により、Apacheのエラーは /Applications/MAMP/logs/apache_error.log に出力されます。

VirtualHostごとにErrorLogを分ける

複数のサイトを1つのApacheで管理している場合は、VirtualHost ごとにエラーログを分けることもできます。

<VirtualHost *:80>
  ServerName example.local
  DocumentRoot "/path/to/example"

  ErrorLog "/path/to/logs/example_error.log"
</VirtualHost>

このようにすると、example.local に関するエラーを専用のログファイルに分けて確認できます。

複数サイトを扱う場合は、サイトごとにログを分けておくと原因を探しやすくなります。

CustomLogの設定方法

CustomLog は、Apacheのアクセスログの出力先と出力形式を指定するディレクティブです。

基本的な書き方は次のようになります。

CustomLog "ログファイルのパス" ログ形式

MAMPの場合は、次のように書かれていることがあります。

CustomLog "/Applications/MAMP/logs/apache_access.log" common

この場合、アクセスログは /Applications/MAMP/logs/apache_access.log に出力され、ログ形式には common が使われます。

combined形式でアクセスログを出力する

アクセス元ページやブラウザ情報も確認したい場合は、combined を使うことがあります。

CustomLog "/Applications/MAMP/logs/apache_access.log" combined

combined 形式では、リクエスト情報に加えて、RefererやUser-Agentなども出力されます。

アクセス解析や不具合調査をしたい場合は、common より combined の方が情報量が多くなります。

LogLevelの使い方

LogLevel は、Apacheのエラーログにどの程度詳しい情報を出力するかを指定するディレクティブです。

たとえば、MAMPの httpd.conf には次のような記述があります。

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel error

LogLevel error の場合、主にエラー以上の情報がエラーログに出力されます。

LogLevelの主な種類

LogLevel には、主に次のようなレベルがあります。

レベル 意味 出力の詳しさ
emerg 緊急 かなり少ない
alert 直ちに対処が必要 少ない
crit 致命的な状態 少ない
error エラー 標準的
warn 警告 やや多い
notice 通常だが重要な情報 多い
info 追加情報 多い
debug デバッグ情報 かなり多い

下にいくほど、より詳しいログが出力されます。

ただし、debug などにするとログの量がかなり増えるため、常に本番環境で使うのはおすすめしません。

原因調査のときだけ一時的に詳しくして、調査が終わったら元に戻すのが安全です。

LogLevelは.htaccessには書けない

LogLevel は、基本的にサーバー設定ファイルや VirtualHost で設定します。

.htaccess には書けません。

そのため、レンタルサーバーなどでサーバー設定ファイルを編集できない場合は、LogLevel を自由に変更できないことがあります。

LogFormatの基本

LogFormat は、アクセスログにどのような情報をどの形式で出力するかを決めるディレクティブです。

たとえば、MAMPの httpd.conf には次のような記述があります。

<IfModule log_config_module>
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  LogFormat "%h %l %u %t \"%r\" %>s %b" common

  CustomLog "/Applications/MAMP/logs/apache_access.log" common
</IfModule>

ここでは、combinedcommon という名前のログ形式が定義されています。

そして、CustomLogcommon を指定しているため、アクセスログは common 形式で出力されます。

LogFormatの主な記号

LogFormat では、%h%t のような記号を使って、ログに出力する内容を指定します。

記号 意味
%h リモートホスト
%l リモートログ名。通常はハイフンになることが多い
%u 認証ユーザー。認証がない場合はハイフンになることが多い
%t リクエストを受け付けた時刻
%r リクエストの最初の行
%>s 最終的に返したHTTPステータスコード
%b レスポンスサイズ
%{Referer}i 参照元URL
%{User-Agent}i ブラウザやクローラーなどのUser-Agent

common 形式では基本的なアクセス情報を出力します。

combined 形式では、RefererUser-Agent も含めて出力できます。

より詳しいログを確認したい場合は、Apache公式ドキュメントの mod_log_config を確認するとよいです。

Apache mod_log_config 公式ドキュメント

ログの確認方法

Apacheのログは、ファイルを直接開いて確認することもできますし、コマンドでリアルタイムに確認することもできます。

Macでログフォルダを開く

MAMPのログフォルダをFinderで開きたい場合は、ターミナルで次のように実行します。

open /Applications/MAMP/logs/

ログファイルは、基本的に上にある行が古く、下にある行が新しいログです。

最新のエラーを確認したい場合は、ログファイルの一番下を見ます。

Windowsでログフォルダを開く

WindowsのPowerShellでは、次のようにしてフォルダを開けます。

ii C:\xampp\apache\logs

MAMP for Windowsの場合は、環境に合わせて次のような場所を確認します。

ii C:\MAMP\logs

tail -Fでログをリアルタイムに確認する

MacやLinuxでは、tail -F を使うとログをリアルタイムに確認できます。-Fはログローテーションでファイルが作り直された場合にも追従しやすい指定です。

tail -n 50 -F /Applications/MAMP/logs/apache_error.log

この状態でブラウザを更新すると、新しいログが出力されたタイミングでターミナルにも表示されます。

Apacheの設定を変更したあとに、エラーが出ていないか確認するときに便利です。

Windows PowerShellでログをリアルタイムに確認する

WindowsのPowerShellでは、Get-Content を使ってログを確認できます。

Get-Content C:\xampp\apache\logs\error.log -Wait -Tail 20

-Tail 20 は、最後の20行を表示する指定です。

-Wait を付けることで、新しいログが追加されたときに続けて表示できます。

apachectl・httpdコマンドで設定を確認する

Apacheの設定ファイルやVirtualHostを調べるときは、目的に合わせてコマンドを使い分けます。

確認したいこと コマンド例
Apacheのビルド情報・ServerRoot・設定ファイル apachectl -V
読み込まれたVirtualHostとServerName apachectl -S
設定ファイルの構文 apachectl configtest
読み込まれたモジュール apachectl -M

環境によってはapachectlの代わりにhttpdを使います。

apachectl -V
apachectl -S
apachectl configtest
apachectl -M

VirtualHostごとに別のErrorLog / CustomLogがある場合、-Sの結果とVirtualHost設定を対応させると、見るべきファイルを絞れます。

アクセスログ1行の読み方

combined形式の例は次のようになります。

192.0.2.10 - - [12/Jul/2026:10:20:30 +0900] "GET /docs/ HTTP/1.1" 404 512 "https://example.com/" "Mozilla/5.0 ..."
意味
192.0.2.10 クライアントアドレス
GET /docs/ HTTP/1.1 リクエストメソッド・パス・プロトコル
404 最終ステータスコード
512 レスポンス本文のバイト数
URL Refererヘッダー
Mozilla/5.0 ... User-Agentヘッダー

リダイレクト調査では301 / 302と遷移先、Not Foundでは404、サーバー・アプリケーションエラーでは500台を探します。アクセスログに500があっても原因本文は通常エラーログ側で確認します。

Apache以外のログへ出ている場合

ブラウザへ502や500が表示されても、原因が必ずApache本体のエラーログへ詳しく出るとは限りません。

  • PHP-FPMを使う構成:PHP-FPMのerror logやpool設定のログ
  • リバースプロキシ構成:手前にあるプロキシとバックエンド双方のログ
  • Docker構成:ファイルではなくコンテナのstdout / stderr
  • systemd管理:journalへ送られたサービスログ

Docker ComposeでApacheコンテナの標準出力を確認する例です。

docker compose logs -f --tail=50 web

webはComposeサービス名の例です。ApacheのErrorLogがファイル、syslog、パイプ、標準エラーのどこへ設定されているかを確認してください。

ログローテーションと安全性

アクセスがあるサーバーではログが継続的に増えます。Linuxディストリビューションのlogrotate、Apache付属のrotatelogs、運用基盤のログ収集機能などで、保持期間・圧縮・削除を管理します。

Apacheのpiped logで日ごとに分割する例です。

CustomLog "|/usr/local/apache2/bin/rotatelogs -l /var/log/httpd/access.%Y-%m-%d.log 86400" combined

実際のrotatelogsの場所は環境によって異なります。既存のOS標準ローテーションと二重管理にならないよう、現在の設定を先に確認してください。

ログにはURL、query string、Referer、User-Agent、クライアント情報などが含まれ得ます。ログディレクトリを一般ユーザーが書き換えられる状態にせず、閲覧権限・保持期間・バックアップ対象を決めます。

ログが出ないときに確認すること

Apacheのログが出ない場合は、次の点を確認します。

ログファイルの場所が違っていないか

まず、見ているログファイルが本当にApacheの設定で指定されているファイルか確認します。

ErrorLogCustomLog に書かれているパスと、実際に開いているログファイルが一致しているか確認してください。

VirtualHost側で別のログが指定されていないか

VirtualHost の中に ErrorLogCustomLog が書かれている場合、サイトごとに別のログファイルへ出力されていることがあります。

<VirtualHost *:80>
  ServerName example.local

  ErrorLog "/path/to/logs/example_error.log"
  CustomLog "/path/to/logs/example_access.log" combined
</VirtualHost>

この場合、共通のログではなく、VirtualHost で指定したログを確認します。

Apacheを再起動していない

httpd.conf などの設定ファイルを変更した場合は、Apacheの再起動が必要です。

MAMPやXAMPPの場合は、アプリの管理画面からApacheを再起動します。

Linuxの場合は、環境に応じて次のようなコマンドを使います。

sudo systemctl restart apache2

CentOSやRHEL系では、次のようなコマンドになることがあります。

sudo systemctl restart httpd

設定ファイルに文法エラーがある

Apacheの設定ファイルに文法エラーがあると、Apacheが起動できないことがあります。

設定を変更したら、次のコマンドで構文チェックをすると安心です。

apachectl configtest

環境によっては、次のように実行します。

httpd -t

Syntax OK と表示されれば、設定ファイルの文法は問題ありません。

ログファイルへの書き込み権限がない

Linuxサーバーなどでは、ログファイルやログディレクトリの権限が原因でログを書き込めないことがあります。

ログのパスを変更した場合は、Apacheを実行しているユーザーがその場所に書き込めるか確認してください。

よくある質問

Apacheのエラーログはどこにありますか?

環境によって違います。

MAMPなら /Applications/MAMP/logs/apache_error.log、XAMPPなら C:\xampp\apache\logs\error.log、Ubuntu系なら /var/log/apache2/error.log が代表的です。

ただし、正確な場所はApacheの設定ファイルにある ErrorLog を確認するのが確実です。

Apacheのアクセスログはどこにありますか?

アクセスログの場所は CustomLog で指定されています。

MAMPなら /Applications/MAMP/logs/apache_access.log、XAMPPなら C:\xampp\apache\logs\access.log、Ubuntu系なら /var/log/apache2/access.log が代表的です。

ErrorLogとCustomLogの違いは何ですか?

ErrorLog はエラーログの出力先を指定します。

CustomLog はアクセスログの出力先と出力形式を指定します。

エラー原因を知りたい場合は ErrorLog、アクセス状況やステータスコードを確認したい場合は CustomLog を見ます。

LogLevelは何に設定すればよいですか?

通常は warnerror がよく使われます。

詳しい調査をしたいときは、一時的に infodebug にすることもあります。

ただし、debug はログの量が増えやすいため、本番環境で常に使うのは避けた方がよいです。

.htaccessにLogLevelやErrorLogは書けますか?

基本的に LogLevelErrorLogCustomLogLogFormat は、サーバー設定ファイルや VirtualHost で設定します。

通常の .htaccess には書けません。

レンタルサーバーなどでサーバー設定ファイルを編集できない場合は、管理画面や提供されているログ機能を確認します。

まとめ

Apacheのログを確認したい場合は、まず ErrorLogCustomLog を確認します。

確認したいこと 見る設定
エラーログの場所 ErrorLog
アクセスログの場所 CustomLog
エラーログの詳しさ LogLevel
アクセスログの形式 LogFormat

ログの場所は環境によって違います。

そのため、ログファイルが見つからない場合は、Apacheの設定ファイルで ErrorLogCustomLog を検索するのが確実です。

ログをリアルタイムで確認したい場合は、MacやLinuxでは tail -f、Windows PowerShellでは Get-Content -Wait -Tail を使うと便利です。

関連記事