引用
在配置文件httpd.conf里查找“CustomLog”一行,整行修改为
CustomLog “|bin/rotatelogs.exe -l E:/logs/access%Y-%m-%d.log 86400″ common
意思是让日志每隔24小时会滚一次,会滚后日志名为“access年-月-日.log”,保存路径为“E:\logs”这样日志就可以按天存入不同的文件中了,另外也可以配合计划任务删除N天之前的日志文件。
同样错误日志也可以使用这样的方法,查找“ErrorLog”一行,整行修改为
ErrorLog “|bin/rotatelogs.exe -l E:/logs/errorlog.%Y-%m-%d-%H_%M_%S.log 86400
同样是每天会滚日志,日志文件名“errorlog.年-月-日-小时_分钟_秒.log”。
由上可以看出%Y表示当前年份,%m表示当前月份以此类推就可以灵活运用保存为需要的文件名。
上面的例子里,日志格式使用的是通用日志模式(common),当然也可以使用组合日志模式(Combined),只需要把上面代码最后的“common”修改成“Combined”。
这种格式与通用日志格式类似,但是多了两个 %{header}i 项,其中的header可以是任何请求头。这种格式的记录形如:
192.168.0.2 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 http://www.huaxiren.cn/index.php "Mozilla/4.08 [en] (Win98; I ;Nav)"
配置完成后保存httpd.conf,重新启动Apache服务器,日志就会从重启Apache的时刻开始每隔一天回滚日志。
值得一提的是在配置了rotatelogs回滚后在windows进程里会多出几个rotatelogs.exe和cmd.exe进程,无须担心,这是rotatelogs在工作。
CustomLog “|bin/rotatelogs.exe -l E:/logs/access%Y-%m-%d.log 86400″ common
意思是让日志每隔24小时会滚一次,会滚后日志名为“access年-月-日.log”,保存路径为“E:\logs”这样日志就可以按天存入不同的文件中了,另外也可以配合计划任务删除N天之前的日志文件。
同样错误日志也可以使用这样的方法,查找“ErrorLog”一行,整行修改为
ErrorLog “|bin/rotatelogs.exe -l E:/logs/errorlog.%Y-%m-%d-%H_%M_%S.log 86400
同样是每天会滚日志,日志文件名“errorlog.年-月-日-小时_分钟_秒.log”。
由上可以看出%Y表示当前年份,%m表示当前月份以此类推就可以灵活运用保存为需要的文件名。
上面的例子里,日志格式使用的是通用日志模式(common),当然也可以使用组合日志模式(Combined),只需要把上面代码最后的“common”修改成“Combined”。
这种格式与通用日志格式类似,但是多了两个 %{header}i 项,其中的header可以是任何请求头。这种格式的记录形如:
192.168.0.2 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 http://www.huaxiren.cn/index.php "Mozilla/4.08 [en] (Win98; I ;Nav)"
配置完成后保存httpd.conf,重新启动Apache服务器,日志就会从重启Apache的时刻开始每隔一天回滚日志。
值得一提的是在配置了rotatelogs回滚后在windows进程里会多出几个rotatelogs.exe和cmd.exe进程,无须担心,这是rotatelogs在工作。
代理方式时,真实ip可以这样
引用
如果结构里有个反向代理,那后端机器的日志记录的就会是代理的ip,真实的ip看不到了,后端代码可以通过在header里设置真实ip来解决,nginx加入下面一段即可:
proxy_set_header X-Real-IP $remote_addr;
后端通过X-REAL-IP或者HTTP_X_REAL_IP变量获取。
日志记录的话,nginx可以定义$http_x_real_ip变量,例如:
log_format main '$http_x_real_ip - $remote_user '
'[$time_local] "$request_method $scheme://$host$request_uri $server_protocol" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" - $remote_addr';
apache可以通过%{X-Real-Ip}i来获取:
LogFormat "%{X-Real-Ip}i %l %u %t \"%m http://%v%U%q\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" - %h" combinedall
proxy_set_header X-Real-IP $remote_addr;
后端通过X-REAL-IP或者HTTP_X_REAL_IP变量获取。
日志记录的话,nginx可以定义$http_x_real_ip变量,例如:
log_format main '$http_x_real_ip - $remote_user '
'[$time_local] "$request_method $scheme://$host$request_uri $server_protocol" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" - $remote_addr';
apache可以通过%{X-Real-Ip}i来获取:
LogFormat "%{X-Real-Ip}i %l %u %t \"%m http://%v%U%q\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" - %h" combinedall
1 使用rotatelogs让Apache日志回滚(for windows)
2 nginx和apache日志记录用户真实ip:X-Real-IP
原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
宁波LED


2011/03/24 10:08
博主分享的好哦,学习了一下。谢谢了
分页: 1/1
1
1
一句shell关闭其它开机启动服务
数据分享:新浪微博都从哪里来?
