log4r - sinatra下的使用,以及如何定制filename
访问量: 1432
直接参考的官方文档.
app.rb:
Dir[File.join(__dir__, 'lib', '*.rb')].each { |file| require file }
$logger = LoggerTool.get_logger log_file_postfix: ENV['market_id'], name: Sinatra::Application.environment.to_s
$logger.info "== hihihi"
lib/logger_tool.rb
require 'log4r'
require 'log4r/yamlconfigurator'
require 'log4r/outputter/datefileoutputter'
class LoggerTool
include Log4r
def self.get_logger options
log4r_config= YAML.load_file(File.join(File.dirname(__FILE__), '..', "config", "log4r.yml"))
temp = log4r_config['log4r_config']
temp["outputters"][0]['filename'] = "matcher_#{options[:log_file_postfix]}"
# 如果是测试环境,那么修改名字为 test
if options[:name] == 'test'
temp["outputters"][0]['filename'] = "test"
end
YamlConfigurator.decode_yaml(temp)
return Log4r::Logger[options[:name]]
end
end
就可以了.
定制filename的窍门,在于读取yml配置后,定义一个临时的变量,然后hash['key']=value的形式来动态的修改文件名