默认的 apache2 日志格式是什么?该默认格式在哪里定义?

默认的 apache2 日志格式是什么?该默认格式在哪里定义?

我复习(快速阅读)Apache 模块 mod_log_config无法弄清楚 apache2 默认日志格式是什么以及它在哪里定义。有什么想法吗?

请注意

/etc/apache2/conf.d/other-vhosts-access-log

不是默认选项,而是全局选项。

答案1

对于 Ubuntu 16.04,您可以在此处找到全局配置文件:

/etc/apache2/apache2.conf

其中定义了一些LogFormat指令

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

开箱即用的虚拟主机配置文件在这里:

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

在里面你会发现它声明:

CustomLog ${APACHE_LOG_DIR}/access.log combined

别名指的是前面提到的全局配置中的combined第二个:LogFormat

"%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""

答案2

文件中明确指出传输日志陈述:

此指令具有与 CustomLog 指令完全相同的参数和效果,不同之处在于它不允许明确指定日志格式或用于条件记录请求。相反,日志格式由最近指定的未定义昵称的 LogFormat 指令决定。如果未指定其他格式,则使用通用日志格式。

继续日志格式陈述:

默认: 日志格式“%h%l%u%t \“%r\”%>s%b”

因此,如果TransferLog给出一个没有任何LogFormat语句的语句,则输出格式如上所述。

如果TransferLog声明中还缺少访问日志被写入。

答案3

默认 LogFormat 确实

Default: LogFormat "%h %l %u %t \"%r\" %>s %b"

但是 apache 默认使用的日志格式(至少在 Debian 发行版中)是:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

相关内容