我正在尝试在ruby中使用Log4r进行日志记录。我希望能够动态地动态更改记录器的yaml配置文件(例如:日志级别),并让该更改自动传播到记录器。我知道文档Log4r documentation表明:
“动态重新定义级别,跟踪或可加性是昂贵的。最好在配置脚本中设置所有记录器,避免对Log4r对象进行动态更改。”
但是,有什么办法可以做到这一点吗?我找到了我想模仿的代码here:
def check_config
# auto reload config every 30 seconds.
return unless check_again?
detect_existing_config_path
return if File.mtime(@config_path) == @config_time
Log4r::YamlConfigurator.load_yaml_file @config_path
@config_time = File.mtime(@config_path)
rescue Log4r::ConfigError => e
puts "Log4r Error: Unable to load config #{@config_path}, error: #{e}."
end
上面的代码来自我关注的特定功能的链接。但是,调用Log4r::YamlConfiguration.load_yaml_file @config_path
似乎不会动态更新记录器。任何人都有动态更改Log4r配置属性的经验/建议吗?