Class: LogjamAgent::BufferedLogger
- Inherits:
-
Object
- Object
- 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
Constructor Details
#initialize(*args) ⇒ BufferedLogger
Returns a new instance of BufferedLogger.
58 59 60 61 62 63 |
# File 'lib/logjam_agent/buffered_logger.rb', line 58 def initialize(*args) super(*args) # stupid bug in the buffered logger code (Rails::VERSION::STRING < "3.2") @log.write "\n" if @log && respond_to?(:buffer) @formatter = lambda{|_, _, _, | } end |
Instance Attribute Details
#formatter ⇒ Object
Returns the value of attribute formatter.
53 54 55 |
# File 'lib/logjam_agent/buffered_logger.rb', line 53 def formatter @formatter end |
Instance Method Details
#add(severity, message = nil, progname = nil, tags_text = nil, &block) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/logjam_agent/buffered_logger.rb', line 65 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) if request = format_exception() else = .to_s if request && severity >= Logger::ERROR && (e = detect_logged_exception()) request.add_exception(e) end end = "#{}#{}" unless .blank? time = Time.now = 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 request.add_line(severity, time, ) if request end |
#logdev=(log_device) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/logjam_agent/buffered_logger.rb', line 95 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 |