CustomLog "|c:/apache/bin/rotatelogs c:/apache/logs/%Y_%m_%d.access.log 86400 480" common
重启Apache
http://lamp./Apache/ApacheMenu/mod/mod_log_config.html#customlog:
说明 |
设定日志的文件名和格式 |
语法 |
CustomLog file|pipe format|nickname [env=[!]environment-variable] |
作用域 |
server config, virtual host |
状态 |
基本(B) |
模块 |
mod_log_config |
CustomLog 指令用来对服务器的请求进行日志记录。可以指定日志的格式,也可以使用环境变量根据请求的特征来自由地组织日志。
第一个参数指定了日志记录的位置,可以使用以下两种方式来设定:
- file
- 相对于
ServerRoot 的日志文件名。 - pipe
- 管道符"
| "后面紧跟着一个把日志输出当作标准输入的处理程序路径。
安全
如果这里用到了程序,那么这个程序是以启动httpd 的用户来执行的。因此如果启动httpd的用户是root ,那这个程序也将以root身份来运行;你需要确认这个程序是安全的。
注意
当在非UNIX平台上输入文件路径的时候,要特别注意即使平台本身是使用反斜杠(\)来分隔路径的,在这里也只能使用正斜杠(/)。通常在配置文件里只用正斜杠(/)来分隔路径总是不会错的。
第二个参数指定了写入日志文件的内容。它既可以是由前面的LogFormat 指令定义的nickname ,也可以是直接按日志格式一节所描述的规则定义的format字符串。
例如:以下两组指令的结果是完全一样的:
# 使用nickname
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
# 明确使用格式格式字符串
CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"
第三个参数是可选的,它根据服务器上特定的环境变量是否被设置来决定是否对某一特定的请求进行日志记录。如果这个特定的环境变量被设置(或者在"env=!name "的情况下未被设置),那么这个请求将被记录。
可以使用mod_setenvif 和/或mod_rewrite 模块来为每个请求设置环境变量。例如:如果你想在服务器上将所有对GIF图片的请求记录在不同于主日志文件的另一个日志文件中,你可以使用下面的指令:
SetEnvIf Request_URI \.gif$ gif-image
CustomLog gif-requests.log common env=gif-image
CustomLog nongif-requests.log common env=!gif-image
或者为了复制旧有的RefererIgnore指令的行为,你可以使用下面的指令:
SetEnvIf Referer example\.com localreferer
CustomLog referer.log referer env=!localreferer
|