Class: JsonLogger
- Inherits:
-
Logger
- Object
- Logger
- JsonLogger
- Defined in:
- lib/json_logger.rb
Constant Summary collapse
- @@factory_defaults =
{}
Instance Attribute Summary collapse
-
#presets ⇒ Object
Returns the value of attribute presets.
Class Method Summary collapse
-
.factory(options = {}) ⇒ Object
return a new JsonLogger - file is set in settings - progname and level can be set by options.
- .factory_defaults=(options) ⇒ Object
Instance Method Summary collapse
-
#initialize(*args) ⇒ JsonLogger
constructor
A new instance of JsonLogger.
Constructor Details
#initialize(*args) ⇒ JsonLogger
Returns a new instance of JsonLogger.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/json_logger.rb', line 27 def initialize(*args) super self.formatter = proc { |severity, datetime, progname, raw| out = { 'time' => datetime.utc.iso8601(3), 'level' => severity, 'level_id' => @levels[severity] } if self.presets out.merge!(self.presets) end if raw.respond_to?(:to_hash) #TODO: raise error if raw has a key which overrides time, level, or level_id? out.merge!(raw.to_hash) elsif raw.respond_to?(:to_s) out['msg'] = raw.to_s end out['progname'] = progname if progname out.to_json + "\n" } @levels = {} Logger::SEV_LABEL.each_with_index {|label,idx| @levels[label] = idx} end |
Instance Attribute Details
#presets ⇒ Object
Returns the value of attribute presets.
25 26 27 |
# File 'lib/json_logger.rb', line 25 def presets @presets end |
Class Method Details
.factory(options = {}) ⇒ Object
return a new JsonLogger
- file is set in settings
- progname and level can be set by options. (default level is in settings)
15 16 17 18 19 20 21 22 23 |
# File 'lib/json_logger.rb', line 15 def self.factory(={}) device = [:device] || @@factory_defaults[:device] inst = new(device) inst.level = [:level] || @@factory_defaults[:level] || Logger::WARN inst.progname = [:progname] || @@factory_defaults[:progname] inst.presets = [:presets] inst end |
.factory_defaults=(options) ⇒ Object
8 9 10 |
# File 'lib/json_logger.rb', line 8 def self.factory_defaults=() @@factory_defaults = end |