Three ways to rotate Rails logs

Rails本身没有提供rotate日志文件的机制。因此,只能考虑其他方法了:

1、使用Ruby的标准Logger库
在environment.rb中增加如下配置:

config.logger = Logger.new(config.log_path, 'weekly')

这样,每周的日志将被保存在一个单独的文件中。
这种方法,对性能有一定的影响。Rails默认的logger,是BufferedLogger,对日志内容有缓存,从而提高性能。

2、使用logrotate(限*nix)
logrotate是*nix下的一个工具,用来rotate各种日志文件。配置方法请查看相关文档。
使用这个方法时,每次rotate,都要重启Rails应用,必然造成瞬间的服务中断。

3、使用syslog(限*nix)
就是把Rails的日志写入系统日志,比如使用http://github.com/cpowell/sysloglogger。
新版的Ubuntu中的系统日志使用的rsyslog,这个日志系统本身支持按日期把日志保存到不同的文件,配置方法见http://wiki.rsyslog.com/index.php/DailyLogRotation。
使用这种方法,无需重启Rails应用,性能与Rails内建的日志相比,没有显著的下降。我认为是一种比较适合于对性能要求比较高的网站使用的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值