diff options
author | Colby Swandale <me@colby.fyi> | 2018-12-12 14:08:35 +1100 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2019-07-15 14:43:07 +0900 |
commit | bbe157f34046ec9ef81e6ad9ed37c86a0d9155e4 (patch) | |
tree | 795ef0226ac95ede84fcee787dbe6cec19418463 /lib/logger/formatter.rb | |
parent | 136196785b10f7cffa1e4d557bc3bcc0e863813a (diff) |
[ruby/logger] split logger classes/modules into separate files
https://github.com/ruby/logger/commit/f10ce9fff2
Diffstat (limited to 'lib/logger/formatter.rb')
-rw-r--r-- | lib/logger/formatter.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/logger/formatter.rb b/lib/logger/formatter.rb new file mode 100644 index 0000000000..13cb1a8390 --- /dev/null +++ b/lib/logger/formatter.rb @@ -0,0 +1,35 @@ +class Logger + # Default formatter for log messages. + class Formatter + Format = "%s, [%s#%d] %5s -- %s: %s\n".freeze + + attr_accessor :datetime_format + + def initialize + @datetime_format = nil + end + + def call(severity, time, progname, msg) + Format % [severity[0..0], format_datetime(time), $$, severity, progname, + msg2str(msg)] + end + + private + + def format_datetime(time) + time.strftime(@datetime_format || "%Y-%m-%dT%H:%M:%S.%6N ".freeze) + end + + def msg2str(msg) + case msg + when ::String + msg + when ::Exception + "#{ msg.message } (#{ msg.class })\n" << + (msg.backtrace || []).join("\n") + else + msg.inspect + end + end + end +end |