分析家 发表于 2015-8-4 10:47:46

Apache log 分割处理用的 mod_log_rotate

http://filer.blogbus.com/1610701/161070112683096149.gif
  Apache log 分割处理用的 mod_log_rotate
  在windows 下的apache,因为使用 cronolog 作 Apache log 的分割處理,它是使用外部的
  工具去分割,然后系统进程里面会有很多的cronolog.exe 而且他们不会停止。这是一个BUG
  。所以我们
  用mod_log_rotate.so模块来代替
  到http://www.apachelounge.com/download/ 下载模块
  也许你的主机还需要下载按vcredist_x86.exe
  按照下载过来的包里面的readme说明去www.microsoft.com/downloads/details.aspx?
  familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en下载
  vcredist_x86.exe并安装,如果没有安装这个,下面的httpd.exe.manifest它将没法编译。
  并将httpd.exe.manifest拷贝到你apache的bin目录下。
  但是在有些windows xp下面可以不用拷贝这个文件apache照样能起来,但是win2003却不行。
  一定要安装vcredist_x86.exe 才能不然会报 load这个模块错误
用法很简单:
  将 mod_log_rotate.so 放到 Apache 的 module 目录,如 Apache2\modules.
  在 httpd.conf 中加上
  LoadModule log_rotate_module modules/mod_log_rotate.so
  RotateLogs On (打開 log)
  RotateLogsLocalTime On (用 local time 算,default 是用 UTC 时间)
  RotateInterval 86400 (86400 是 default,也就是一天,這一行不加也可以)
  原本用 cronolog 的地方
  CustomLog “|c:/bin/cronolog.exe logs/access_%Y%m%d.log” combined
  改成
  CustomLog logs/access_%Y%m%d.log combined
  注意,这个模块不能自己创建文件,
  如果你的logs文件里面没有test11这个文件,那么写如下配置apache将会报错。且启动失败
  CustomLog logs/test11/access_%Y%m%d.log combined
  只能用自己手动增加这样一个test11目录才能启动且写入日志。
  
  日志轮询二:
  利用apache自带的rotatelogs工具,具体设置就是把httpd.conf中的:CustomLog logs/access.log common替换为CustomLog "|bin/rotatelogs.exe -l logs/access%Y-%m-%d.log 86400" combined,
  同样 如果你觉得error日志不断增大而不利于访问的时候,也可以使用下面的配置进行error日志的轮询
ErrorLog "|bin/rotatelogs.exe -l /logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
页: [1]
查看完整版本: Apache log 分割处理用的 mod_log_rotate