Class: LogjamAgent::BufferedLogger
- Inherits:
-
ActiveSupport::Logger
- Object
- ActiveSupport::Logger
- LogjamAgent::BufferedLogger
- Includes:
- RequestHandling
- Defined in:
- lib/logjam_agent/buffered_logger.rb
Instance Attribute Summary collapse
-
#formatter ⇒ Object
Returns the value of attribute formatter.
Instance Method Summary collapse
- #add(severity, message = nil, progname = nil, tags_text = nil, &block) ⇒ Object
-
#initialize(*args) ⇒ BufferedLogger
constructor
A new instance of BufferedLogger.
- #logdev=(log_device) ⇒ Object
Methods included from RequestHandling
#finish_request, #request, #request=, #start_request
Methods inherited from ActiveSupport::Logger
Constructor Details
#initialize(*args) ⇒ BufferedLogger
Returns a new instance of BufferedLogger.
35 36 37 38 |
# File 'lib/logjam_agent/buffered_logger.rb', line 35 def initialize(*args) super(*args) @formatter = lambda{|_, _, _, | } end |
Instance Attribute Details
#formatter ⇒ Object
Returns the value of attribute formatter.
30 31 32 |
# File 'lib/logjam_agent/buffered_logger.rb', line 30 def formatter @formatter end |
Instance Method Details
#add(severity, message = nil, progname = nil, tags_text = nil, &block) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/logjam_agent/buffered_logger.rb', line 40 def add(severity, = nil, progname = nil, = nil, &block) return if level > severity = progname if .nil? progname = nil ||= block.call || '' if block request = LogjamAgent.request if .is_a?(Exception) request.add_exception(.class.to_s, severity) if request = format_exception() else = .to_s if request && severity >= Logger::ERROR && (e = detect_logged_exception()) request.add_exception(e) end end log_to_log_device = LogjamAgent.log_to_log_device?(severity, ) = "#{}#{}" unless .blank? time = Time.now if log_to_log_device = formatter.call(severity, time, progname, ) if respond_to?(:buffer) buffer << << "\n" auto_flush elsif @log # @log is a logger (or nil for rails 4) @log << "#{}\n" elsif @logdev @logdev.write() end end request.add_line(severity, time, ) if request end |
#logdev=(log_device) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/logjam_agent/buffered_logger.rb', line 73 def logdev=(log_device) raise "cannot connect logger to new log device" unless log_device.respond_to?(:write) if respond_to?(:buffer) @log = log_device else (@log||self).instance_eval do raise "cannot set log device" unless defined?(@logdev) @logdev = log_device end end end |