【发布时间】: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
有什么想法吗?
我看过以下帖子:
和文档:
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
【问题讨论】: