lib/ougai.rb in ougai-0.3.0 vs lib/ougai.rb in ougai-0.7.0
- old
+ new
@@ -1,120 +1,5 @@
-require "ougai/version"
-require 'logger'
-require 'socket'
-require 'time'
-require 'json'
-
-module Ougai
- class Logger < Logger
- attr_accessor :default_message, :app_name
- attr_accessor :ex_key, :ex_trace_indent
-
- def initialize(*args)
- super(*args)
- @default_message = 'No message'
- @app_name = File.basename($0, ".rb")
- @hostname = Socket.gethostname
- @ex_key = :err
- @ex_trace_indent = 2
- @formatter = create_formatter
- end
-
- def debug(message, ex = nil, data = nil)
- super(to_item(message, ex, data))
- end
-
- def info(message, ex = nil, data = nil)
- super(to_item(message, ex, data))
- end
-
- def warn(message, ex = nil, data = nil)
- super(to_item(message, ex, data))
- end
-
- def error(message, ex = nil, data = nil)
- super(to_item(message, ex, data))
- end
-
- def fatal(message, ex = nil, data = nil)
- super(to_item(message, ex, data))
- end
-
- protected
-
- def create_formatter
- proc do |severity, time, progname, data|
- JSON.generate({
- name: progname || @app_name,
- hostname: @hostname,
- pid: $$,
- level: to_level(severity),
- time: time.iso8601(3),
- v: 0
- }.merge(data)) + "\n"
- end
- end
-
- private
-
- def to_item(msg, ex, data)
- item = {}
- if ex.nil? # 1 arg
- if msg.is_a?(Exception)
- item[:msg] = msg.to_s
- item[@ex_key] = serialize_ex(msg)
- elsif msg.is_a?(Hash)
- item[:msg] = @default_message unless msg.key?(:msg)
- item.merge!(msg)
- else
- item[:msg] = msg.to_s
- end
- elsif data.nil? # 2 args
- if ex.is_a?(Exception)
- item[:msg] = msg.to_s
- item[@ex_key] = serialize_ex(ex)
- elsif ex.is_a?(Hash)
- item.merge!(ex)
- if msg.is_a?(Exception)
- item[@ex_key] = serialize_ex(msg)
- else
- item[:msg] = msg.to_s
- end
- end
- elsif msg # 3 args
- item[@ex_key] = serialize_ex(ex) if ex.is_a?(Exception)
- item.merge!(data) if data.is_a?(Hash)
- item[:msg] = msg.to_s
- else # No args
- item[:msg] = @default_message
- end
- item
- end
-
- def serialize_ex(ex)
- err = {
- name: ex.class.name,
- message: ex.to_s
- }
- if ex.backtrace
- sp = "\n" + ' ' * @ex_trace_indent
- err[:stack] = ex.backtrace.join(sp)
- end
- err
- end
-
- def to_level(severity)
- case severity
- when 'INFO'
- 30
- when 'WARN'
- 40
- when 'ERROR'
- 50
- when 'FATAL'
- 60
- else # DEBUG
- 20
- end
- end
- end
-end
+require 'ougai/version'
+require 'ougai/formatters/base'
+require 'ougai/formatters/bunyan'
+require 'ougai/formatters/readable'
+require 'ougai/logger'