Apache 日志详解: Difference between revisions
Jump to navigation
Jump to search
| Line 43: | Line 43: | ||
日志等级可以分模块开放。如 <code>LogLevel warn rewrite:trace2 proxy:debug proxy_http:trace3 ssl:warn</code>。怀疑哪个模块有问题,就把那个模块的日志等级调详细一些。 | 日志等级可以分模块开放。如 <code>LogLevel warn rewrite:trace2 proxy:debug proxy_http:trace3 ssl:warn</code>。怀疑哪个模块有问题,就把那个模块的日志等级调详细一些。 | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ 日志级别 | ||
!等级 | !等级 | ||
!含义 | !含义 | ||
Revision as of 10:49, 9 April 2026
Apache 日志分三个层次,分别是访问日志、状态日志、自造日志。
Access Log 记录:
- 谁访问了
- 访问了什么
- 返回什么状态码
Error Log 记录:
- 模块警告
- 配置错误
- 程序异常
- 权限错误
- SSL问题
生效条件
日志在以下情况才会产生:
- 文件夹存在
- apache 有文件夹的读写权限
- 先有 LogFormat 定义日志格式:
LogFormat "%h %l %u %t \"%r\" %>s %b" miaomiaomiao - 后有 CustomLog 生成日志:
CustomLog /var/log/apache2/sth_debug.log miaomiaomiao - 需
sudo systemctl reload apache2重启一下
tail -f /var/log/apache2/sth_debug.log 可以查看新产生的日志。
四种能力
SetEnvIfNoCase User-Agent "^$" ua_empty
LogFormat "%h %l %u %t \"%r\" %>s %b ua=\"%{User-Agent}i\" empty=%{ua_empty}e" miaomiaomiao
CustomLog /var/log/apache2/anki_debug.log miaomiaomiao env=ua_empty
- SetEnvIfNoCase 设置环境变量。格式为
SetEnvIfNoCase 检查对象 正则匹配 设置变量。上述命令是把空请求头设置为 ua_empty - %{User-Agent}i 进站请求头,i 是 incoming header
- %{ua_empty}e ua 这个环境变量
- env= 满足环境变量才记录
%h %l %u %t \"%r\" %>s %b 是日志格式指定,不用记,用时随手搜或照抄即可。
LogLevel
日志等级越往下越详细。越详细越占用内存和网络,所以一般只开 warn,意思是比 warn 还严重的级别才显示。
日志等级可以分模块开放。如 LogLevel warn rewrite:trace2 proxy:debug proxy_http:trace3 ssl:warn。怀疑哪个模块有问题,就把那个模块的日志等级调详细一些。
| 等级 | 含义 |
|---|---|
| emerg | 系统完全崩溃 |
| alert | 必须立刻处理 |
| crit | 严重错误 |
| error | 普通错误 |
| warn | 警告 |
| notice | 重要但正常 |
| info | 信息 |
| debug | 调试 |
| trace1–trace8 | 超级详细调试 |