【问题标题】:How to format ruby logger to this?如何将 ruby​​ 记录器格式化为这个?
【发布时间】:2013-11-25 21:39:58
【问题描述】:

ruby logger 中的默认样式是:

SeverityID, [Date Time mSec #pid] SeverityLabel -- ProgName: message
# => D, [2013-11-25T13:31:03.451024 #38180] DEBUG -- : <message...>

我想让它看起来像:

SeverityLabel [Date Time mSec #pid]: message
# => DEBUG [2013-11-25T13:31:03.451024 #38180]: <message...>

我知道我可以这样格式化:

logger.formatter = proc do |severity, datetime, progname, msg|
   "severity [#{datetime}]: #{msg}\n"
end
# => DEBUG [2013-11-25 13:37:45 -0800]: <message...>

但 proc 中的日期时间看起来不像默认显示的那样。我试过使用 datetime_format

logger.datetime_format = "%Y-%m-%d %H:%M:%S.%L"

但它对我的记录器没有影响...

另外,我也找不到#pid

有什么想法吗?

我看过以下帖子:

How to format ruby logger?

和文档:

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html


感谢Some Guy的回复,这就是我最终做的:

logger.formatter = proc do |severity, datetime, progname, msg|
   "#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%6N')} ##{Process.pid}]: #{msg}\n"
end

【问题讨论】:

    标签: ruby logging


    【解决方案1】:

    试试这个:

     "#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}]: #{msg}\n"
    

    【讨论】:

    • 感谢您的超级快速响应。这样可行。对于我刚刚发现的pid,我可以做 Process.pid
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多