lib/franz/logger.rb in franz-1.5.4 vs lib/franz/logger.rb in franz-1.5.5
- old
+ new
@@ -14,20 +14,20 @@
def trace progname, &block
add TRACE, nil, progname, &block if @trace
end
end
- # A powerful, colorful logger for Franz.
+ # A colorful JSON logger for Franz.
class Logger < Logger
# Maps each log level to a unique combination of fore- and background colors
SEVERITY_COLORS = {
- 'DEBUG' => [ :blue, :default ],
- 'INFO' => [ :green, :default ],
- 'WARN' => [ :yellow, :default ],
- 'ERROR' => [ :red, :default ],
- 'FATAL' => [ :red, :black ],
- 'TRACE' => [ :magenta, :default ]
+ 'debug' => [ :blue, :default ],
+ 'info' => [ :green, :default ],
+ 'warn' => [ :yellow, :default ],
+ 'error' => [ :red, :default ],
+ 'fatal' => [ :red, :black ],
+ 'trace' => [ :magenta, :default ]
}
# Create a new, colorful logger.
#
# @param debug [Boolean] enable DEBUG level logs
@@ -42,49 +42,27 @@
self.level = ::Logger::DEBUG if debug
end
private
def format colorize
- short_format = "%s\n"
- long_format = "%s [%s] %s -- %s\n"
-
self.formatter = proc do |severity, datetime, _, message|
- if colorize
- if level == 1
- event = {
- level: severity.downcase,
- timestamp: Time.now.iso8601(6)
- }.merge(message)
- JSON::generate(event).colorize(
- color: SEVERITY_COLORS[severity.to_s][0],
- background: SEVERITY_COLORS[severity.to_s][1]
- ) + "\n"
- else
- long_format.colorize(
- color: SEVERITY_COLORS[severity.to_s][0],
- background: SEVERITY_COLORS[severity.to_s][1]
- ) % [
- severity,
- datetime.iso8601(6),
- File::basename(caller[4]),
- message
- ]
- end
- else # plain
- if level == 1
- event = {
- level: severity.downcase,
- timestamp: Time.now.iso8601(6)
- }.merge(message)
- JSON::generate(event) + "\n"
- else
- long_format % [
- severity,
- datetime.iso8601(6),
- File::basename(caller[4]),
- message
- ]
- end
+
+ message = { message: message } unless message.is_a? Hash
+
+ event = {
+ severity: severity.downcase!,
+ timestamp: datetime.iso8601(6),
+ marker: File::basename(caller[4])
+ }.merge(message)
+
+ if colorize # console output
+ event = JSON::pretty_generate(event) + "\n"
+ event.colorize \
+ color: SEVERITY_COLORS[severity][0],
+ background: SEVERITY_COLORS[severity][1]
+
+ else # logging to file
+ event = JSON::generate(event) + "\n"
end
end
end
end
end
\ No newline at end of file