首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby -为不同的目标设置不同的日志级别

Ruby -为不同的目标设置不同的日志级别
EN

Stack Overflow用户
提问于 2018-05-31 21:34:27
回答 1查看 188关注 0票数 1

想知道如何为不同的目标设置不同的日志级别。下面是我的Ruby代码,它同时向ConsoleFile写入一行代码。

代码语言:javascript
复制
# https://stackoverflow.com/a/6407200
class MultiIO
  def initialize(*targets)
    @targets = targets
  end

  def write(*args)
    @targets.each do |t|
      t.write(*args)
    end
  end

  def close
    @targets.each(&:close)
  end
end

module Logging
  def self.logger(logname, programname, debug = false)
    log_file = File.open(logname, "a")
    log_file.sync = true
    zlogger = Logger.new MultiIO.new(log_file, STDOUT)
    zlogger.level = Logger::INFO
    zlogger.progname = programname
    zlogger.formatter = proc do |serverity, datetime, progname, msg|
      "#{datetime.strftime('%Y-%m-%d %I:%M:%S %p %:::z %Z')} - #{serverity} - [#{progname}] | #{msg}\n"
    end

    zlogger
  end
end

如果找到特殊的环境变量$logger.level = Logger::DEBUG if ENV['enable_debug_logs'] == 'true',我可以将级别设置为调试

但是,不确定如何始终将Debug行写入日志文件,而只将Info行写入控制台。

有人知道吗?任何帮助都是非常感谢的!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50625613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档