Three ways to rotate Rails logs_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Three ways to rotate Rails logs

Three ways to rotate Rails logs

 2010/9/19 23:12:44  isimon  http://isimon.javaeye.com  我要评论(0)
  • 摘要:Rails本身没有提供rotate日志文件的机制。因此,只能考虑其他方法了:1、使用Ruby的标准Logger库在environment.rb中增加如下配置:config.logger=Logger.new(config.log_path,'weekly')这样,每周的日志将被保存在一个单独的文件中。这种方法,对性能有一定的影响。Rails默认的logger,是BufferedLogger,对日志内容有缓存,从而提高性能。2、使用logrotate(限*nix
  • 标签:Three ways 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内建的日志相比,没有显著的下降。我认为是一种比较适合于对性能要求比较高的网站使用的方法。
发表评论
用户名: 匿名