How to format ruby logger to this?
ruby logger中的默认样式是:
1 2 | SeverityID, [Date Time mSec #pid] SeverityLabel -- ProgName: message # => D, [2013-11-25T13:31:03.451024 #38180] DEBUG -- : <message...> |
我想让它看起来像:
1 2 | SeverityLabel [Date Time mSec #pid]: message # => DEBUG [2013-11-25T13:31:03.451024 #38180]: <message...> |
我知道我可以这样格式化:
1 2 3 4 5 | logger.formatter = proc do |severity, datetime, progname, msg| "severity [#{datetime}]: #{msg} " end # => DEBUG [2013-11-25 13:37:45 -0800]: <message...> |
但是proc中的datetime看起来并不像默认显示的那样。 我尝试过使用datetime_format
1 | logger.datetime_format ="%Y-%m-%d %H:%M:%S.%L" |
但它对我的记录器没有影响......
另外,我也找不到#pid
有什么想法吗?
我看过以下帖子:
如何格式化ruby logger?
和文件:
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html
感谢Some Guy的回复,这就是我最终做的事情:
1 2 3 4 | logger.formatter = proc do |severity, datetime, progname, msg| "#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%6N')} ##{Process.pid}]: #{msg} " end |
试试这个:
1 2 | "#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}]: #{msg} " |