1

我正在尝试在 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 配置属性有任何经验/建议吗?

4

0 回答 0