我正在尝试在 ruby 中使用 Log4r 进行日志记录。我希望能够动态更改记录器的 yaml 配置文件(例如:日志级别),并让该更改自动传播到记录器。我知道文档Log4r 文档指出:
“动态重新定义级别、跟踪或可加性很昂贵。最好在配置脚本中设置所有记录器,并避免对 Log4r 对象进行动态更改。”
但是,有什么办法可以做到这一点?我在这里找到了我想模仿的代码:
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 配置属性有任何经验/建议吗?