论坛首页 编程语言技术论坛

如何让日志按日期分开存储

浏览 5025 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-13  
rails的项目运行久了,日志文件会越来越大的,能否让它按日期来分开存储日志文件。
ps:service选用的是mongrel.
   发表时间:2007-06-13  
写个linux定时任务,每天00:00处理一下日志文件
0 请登录后投票
   发表时间:2007-06-13  
RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", "daily")


改一下Logger的配置,让他每日自动做日志切换。
4 请登录后投票
   发表时间:2007-11-21  
RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", "daily") 

放在什么位置呀,我放在config\environment.rb竟然没作用
0 请登录后投票
   发表时间:2007-11-21  
zengyinbo 写道
RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", "daily") 

放在什么位置呀,我放在config\environment.rb竟然没作用
try this:
# append to config\environment.rb
ActiveRecord::Base.logger = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", "daily")
0 请登录后投票
   发表时间:2007-11-22  
多谢rainchen 。
下面的代码放在config\environment.rb里面,实现了按日期来分开存储web日志文件和sql日志,需注意代码顺序。

在log/目录下新建sql文件夹,sql文件夹用来保存sql日志

#web访问日志
RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}#{Date.today.to_s}.log", "daily")

#rails的初始化
Rails::Initializer.run do |config|
   #...
end

#sql日志
ActiveRecord::Base.logger = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}#{Date.today.to_s}.log", "daily")
0 请登录后投票
   发表时间:2007-11-22  
RubyWorks的做法是,用runit监控Mongrel,把Mongrel的stdout和stderr重定向到runit的logd,这里可以配置很多东西,包括日志的截断方式。
0 请登录后投票
   发表时间:2007-11-22  
工业标准做法是logrotate
0 请登录后投票
   发表时间:2007-11-22  
引用
工业标准做法是logrotate

恩恩,RubyWorks就是用logrotate
(刚才忘记了这个名字,呼呼)
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics