class Purview::Loggers::Base
Constants
- DEBUG_LEVEL
- ERROR_LEVEL
- INFO_LEVEL
Attributes
opts[R]
Public Class Methods
new(opts={})
click to toggle source
# File lib/purview/loggers/base.rb, line 4 def initialize(opts={}) @opts = default_opts.merge(opts) end
Public Instance Methods
debug(*args)
click to toggle source
# File lib/purview/loggers/base.rb, line 8 def debug(*args) log(DEBUG_LEVEL, *args) if debug? end
error(*args)
click to toggle source
# File lib/purview/loggers/base.rb, line 12 def error(*args) log(ERROR_LEVEL, *args) if error? end
info(*args)
click to toggle source
# File lib/purview/loggers/base.rb, line 16 def info(*args) log(INFO_LEVEL, *args) if info? end
with_context_logging(*args) { || ... }
click to toggle source
# File lib/purview/loggers/base.rb, line 20 def with_context_logging(*args) debug(build_starting_message(*args)) yield.tap { |result| debug(build_finished_message(*args)) } end
Private Instance Methods
build_finished_message(*args)
click to toggle source
# File lib/purview/loggers/base.rb, line 33 def build_finished_message(*args) case args.length when 1; "Finished #{args[0]}" when 2; args[-1] else; raise end end
build_message(level, *args)
click to toggle source
# File lib/purview/loggers/base.rb, line 41 def build_message(level, *args) message, exception = args[0..1] message_template(!!exception) % { :exception => format_exception(exception), :level => level, :message => message, :process_id => Process.pid, :timestamp => Time.now.strftime('%Y-%m-%d %H:%M:%S.%L %z'), } end
build_starting_message(*args)
click to toggle source
# File lib/purview/loggers/base.rb, line 52 def build_starting_message(*args) case args.length when 1; "Starting #{args[0]}" when 2; args[0] else; raise end end
debug?()
click to toggle source
# File lib/purview/loggers/base.rb, line 60 def debug? !!opts[:debug] end
default_opts()
click to toggle source
# File lib/purview/loggers/base.rb, line 64 def default_opts { :debug => true, :error => true, :info => false, } end
error?()
click to toggle source
# File lib/purview/loggers/base.rb, line 72 def error? !!opts[:error] end
format_exception(exception)
click to toggle source
# File lib/purview/loggers/base.rb, line 76 def format_exception(exception) exception && exception.backtrace.map { |line| "\tfrom #{line}" }.join("\n") end
info?()
click to toggle source
# File lib/purview/loggers/base.rb, line 80 def info? !!opts[:info] end
log(level, *args)
click to toggle source
# File lib/purview/loggers/base.rb, line 84 def log(level, *args) stream.puts build_message(level, *args) end
message_template(exception)
click to toggle source
# File lib/purview/loggers/base.rb, line 88 def message_template(exception) "%{timestamp} %{level} (%{process_id}) %{message}".tap do |result| result << ":\n%{exception}" if exception end end
stream()
click to toggle source
# File lib/purview/loggers/base.rb, line 94 def stream opts[:stream] end