2013-11-25 12 views
9

ルビーロガーのデフォルトのスタイルがある: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は、デフォルトで示したようには見えません。私はどちらか#pid

任意の考えを見つけることができない、また...

を私はDATETIME_FORMAT

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

を使用してみましたが、それは私のロガーには影響しませんか?

私は以下の記事を見てきました:

How to format ruby logger?

とDOC:

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


いくつかの男の回答のおかげで、これは私がやってしまったものです:

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

答えて

10

これを試してみてください。スーパー迅速な応答のための

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

感謝を。それは動作します。 pidのために私はProcess.pidを実行することができたことを知りました。 –

+0

$$もpidのために働きます。 –

関連する問題