ruby – ActiveRecord干扰Logger
发布时间:2020-12-17 02:58:00 所属栏目:百科 来源:网络整理
导读:似乎使用ActiveRecord(需要ActiveSupport)与Logger类混淆,导致困难.这可以通过一些示例代码看到: require 'rubygems'#require 'activerecord'require 'logger'log = Logger.new(STDERR)log.sev_threshold = Logger::INFOlog.datetime_format = "%Y-%m-%d %H
似乎使用ActiveRecord(需要ActiveSupport)与Logger类混淆,导致困难.这可以通过一些示例代码看到:
require 'rubygems' #require 'activerecord' require 'logger' log = Logger.new(STDERR) log.sev_threshold = Logger::INFO log.datetime_format = "%Y-%m-%d %H:%M:%S" log.debug "debug" log.info "info" log.warn "warn" log.error "error" log.fatal "fatal" 运行此代码将产生这个可爱的输出: I,[2009-09-02 10:49:39#27562] INFO -- : info W,[2009-09-02 10:49:39#27562] WARN -- : warn E,[2009-09-02 10:49:39#27562] ERROR -- : error F,[2009-09-02 10:49:39#27562] FATAL -- : fatal 但是,如果我取消注释require’activerecord’行,我会改为: info warn error fatal 所以我在查看activesupport后进行了一些搜索: logger.rb 我找到了以下“工作方案” log = Logger.new(STDERR) log.sev_threshold = Logger::INFO log.datetime_format = "%Y-%m-%d %H:%M:%S" class Formatter Format = "%s,[%s#%d] %5s -- %s: %sn" attr_accessor :datetime_format def initialize @datetime_format = nil end def call(severity,time,progname,msg) Format % [severity[0..0],format_datetime(time),$$,severity,msg2str(msg)] end private def format_datetime(time) if @datetime_format.nil? time.strftime("%Y-%m-%dT%H:%M:%S.") << "%06d " % time.usec else time.strftime(@datetime_format) end end def msg2str(msg) case msg when ::String msg when ::Exception "#{ msg.message } (#{ msg.class })n" << (msg.backtrace || []).join("n") else msg.inspect end end end f=Formatter.new f.datetime_format = "%Y-%m-%d %H:%M:%S" log.formatter=f 使用上面的内容,我得到了我喜欢的输出.然而,这对我来说似乎是粗暴的,而且是非鲁莽的.有谁知道是否有更简单的方法来获得理想的结果? 谢谢! 解决方法
在最后一小时,同样的问题困扰着我,但解决方案非常简单.
ActiveSupport使用SimpleFormatter,您必须手动设置’旧’Formatter. require 'rubygems' require 'active_support' require 'logger' log = Logger.new(STDERR) log.sev_threshold = Logger::INFO log.datetime_format = "%Y-%m-%d %H:%M:%S" log.formatter = Logger::Formatter.new Ps:Sry因为我的英语不好:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |