Padrino自定义日志文件

时间:2013-07-09 16:09:16

标签: ruby padrino

我需要在Padrino中创建一个自定义日志文件,其中包含stdout中的所有日志记录信息以及自定义日志消息。我已经能够创建自定义日志文件,但是仍然使用日志记录语句创建stdout文件(development.log,production.log等)。我已经尝试将这些行放在boot.rb文件中,但这些都不起作用:

Padrino::Logger::Config[:development][:stream] = :to_file

Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :to_file }

Padrino::Logger::Config[:development][:stream] = :null

Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :null}

我看过Padrino的development commandslogger documentation,但他们没有帮助。

如果有帮助,这是生成自定义日志文件的代码。 (无论我是否运行此代码,stdout文件都会不断创建):

log_path = File.join(custom_log_path, 'My Service')

FileUtils.mkdir_p log_path
log_file_path = File.join(log_path, "MyService_#{current_date_time_formatted}.log")
logger = File.open(log_file_path, "a+")

if defined?(PADRINO_ENV) && PADRINO_ENV == 'production'
  $stdout.reopen(logger)
  $stderr.reopen(logger)
end

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你应该可以这样做:

Padrino::Logger::Config[:development][:stream] = logger
# or
Padrino::Logger::Config[:production][:stream] = logger

定义logger后。如果config[:stream]未收到关键字,Padrino::Logger将使用传递的任何内容作为输出流。

有关Padrino记录器的更多信息,请查看相关的Padrino Core代码,尤其是self.setup!https://github.com/padrino/padrino-framework/blob/master/padrino-core/lib/padrino-core/logger.rb