2013-11-25 18 views
9

yakut kaydedici varsayılan stil:Ruby logger buna nasıl biçimlendirilir?

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

ve ben gibi görünüyor yapmak istiyorum: Ben bu gibi biçimlendirilebilir biliyorum

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...> 

ama procdaki tarih zamanı, varsayılan olarak gösterdiği gibi görünmüyor. Ben de

herhangi bir düşünce #pid bulamıyor Ayrıca ...

Ben DATETIME_FORMAT

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

kullanarak denedim ama benim kaydedici üzerinde hiçbir etkisi yoktur?

aşağıdaki sonrası gördüm:

How to format ruby logger?

ve doc: Bazı Guy yanıta

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


Teşekkür Bu yaptığım sona erdi budur :

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

cevap

10

bu deneyin: süper kısa sürede cevap

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

teşekkür ederiz. Bu işe yarıyor. ve pid için ben de sadece Process.pid –

+0

$$ pid için de yapabileceğimi buldum. –