我们的服务器上有一个实时帮助,它会生成大量访问日志,您可以想象。目前,它们被附加到它们运行的站点的所有其他访问日志中。这使得对错误日志进行分类变得很困难。有没有办法可以指定 /livehelp 中的任何内容进入不同的日志文件?
答案1
<Directory "/livehelp">
CustomLog /my/custom/access.log combined
ErrorLog /my/custom/apache2/error.log
</Directory>
答案2
如果您将 /livehelp 移至其自己的虚拟主机(需要自己的 HostName)您可以自定义日志以将它们分开。您可以使用 CustomLog 和 ErrorLog 指令来指定这些日志的位置。
<VirtualHost *:80>
ServerName livehelp.example.com
DocumentRoot /path/to/the/livehelp/folder
ErrorLog logs/livehelp-error_log
CustomLog logs/livehelp-access_log combined
</VirtualHost>
答案3
你可以使用 apache 的管道日志 [1] 功能。创建一个 shell 脚本,如下所示
#!/bin/sh
PATTERN="/livehelp"
FLAGS="-v"
if [ "x$1" == "xlive" ]; then
FLAGS=""
fi;
grep $FLAGS "$PATTERN" > $2
(未经测试且需要改进)
现在添加
CustomLog "|/path/to/script live /var/log/live" combined
和
CustomLog "|/path/to/script std /var/log/std" combined
到 apache 配置
如果需要的话,你可以在这里添加更多过滤条件