Class: MyStuff::Logger::Writer
- Inherits:
-
Object
- Object
- MyStuff::Logger::Writer
- Defined in:
- lib/my_stuff/logger/writer.rb
Constant Summary collapse
- OVERRIDABLE_OPTIONS =
Configure the logger.
These can be set:
-
globally, via Writer.option = foo
-
per-class, via Writer.new(:option => foo)
-
per class, via Writer.new.option = foo
-
[ :backtrace_level, :device, :level, :root_path, ]
Instance Method Summary collapse
-
#initialize(*args) ⇒ Writer
constructor
IO, options.
- #raw_log(outer_caller, level, args) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Writer
IO, options
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/my_stuff/logger/writer.rb', line 22 def initialize *args # IO, options if args.last.is_a? Hash = args.pop else = {} end raise ArgumentError.new 'too many arguments' if args.count > 1 unless args.empty? [:device] = args.first end OVERRIDABLE_OPTIONS.each do |opt| if .include? opt instance_variable_set "@#{opt}", [opt] end end end |
Instance Method Details
#raw_log(outer_caller, level, args) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/my_stuff/logger/writer.rb', line 41 def raw_log outer_caller, level, args unless LEVELS.include? level raw_log outer_caller, :fatal, "%s (unknown level '%s')" % [log_text(*args), level.inspect] end return if LEVELS[level] < LEVELS[self.level] = "%s %s @%s> %s\n" % [ level.to_s[0,1].upcase, # D|I|W|E|F Time.new.strftime("%s [%Y-%m-%d %H:%M:%S %z]"), pretty_caller(outer_caller.first), log_text(*args) ] if LEVELS[level] >= LEVELS[self.backtrace_level] # Full backtrace outer_caller.each do |x| += " from %s\n" % pretty_caller(x) end end device.write end |