resin access日志配置总结 [转]

转:http://wuyilun2.blog.163.com/blog/static/9853110201111910553408/

resin服务器在被访问时,会将访问者的IP、时间、get/set方式、域名后的URL、以及所用的代理记录在logs的access.log文件中。
随着用户的不断访问,该日志的内容会不断增加。
在resin官方手册中有关于access的配置,可以配置定周期备份。
配置方法:
打开resin配置文件
vim /usr/local/resin-3.1.10/conf/resin.conf
在resin.conf文件中配置
<access-log 
   path="logs/access.log"
   format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
   rollover-period="1D"
   rollover-count="2"
/>
其中path表示日志生成的路径;format表示日志输出的格式,采用类似C语言中的printf函数的打印格式格式化日志信息;
rollover-period表示回滚的周期,1D表示以一天为单位回滚,所谓的回滚是将当前所有写日志操作都先锁住,然后将文件的内容复制到文件名带时间戳的文件里,完成之后access.log文件继续使用。
同理,如果配置的是1W就表示以一周为单位;
rollover-count表示备份的文件数,这里配置是2,表示最多只备份两个备份文件,超过的就将更早的那个备份文件删除。
但是在高并发的情况下,例如用户的访问量集中在某个时间段,且数量非常之大,或者是在做压力测试,这个时候access.log可能等不到一天的周期回滚就爆满了,
致使导致线程无空间运行,甚至resin都无法启动。
在某些帖子上看到部分人是将access.log的输出关闭(resin.conf中不写<access-log .../>这段配置就可以关闭了),这是一个解决方法。
其实access-log还有一个配置,可以按照文件大小进行回滚,具体配置如下:
<access-log
   path="logs/access.log"
   format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
   rollover-size="5mb"
   rollover-count="2"
   auto-flush="true"
/>
其中path表示日志生成的路径;format表示日志输出的格式,采用类似C语言中的printf函数的打印格式格式化日志信息;
rollover-size表示回滚的大小,为了方便测试,让效果比较明显,我是设5M。
这里值得注意的是,resin并不是实时都在判断access.log大小有没有超过rollover-size,而是每2分钟检查一次文件,
如果在这两分钟之内文件大小超过rollover-size,resin是不做处理的,只有待到两分钟的那一刻,
resin才会去将这个大于rollover-size的文件的内容复制到文件名带时间戳的文件里,完成之后access.log文件继续使用。
rollover-count表示备份的文件数,这里配置是2,表示最多只备份两个备份文件,超过的就将更早的那个备份文件删除。
此外周期回滚和限制大小回滚可以一起使用,经过测试确实能生效。
<access-log
   path="logs/access.log"
   format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
   rollover-period="1D"
   rollover-size="5mb"
   rollover-count="2"
   auto-flush="true"
/>

猜你喜欢

转载自breezylee.iteye.com/blog/2042519