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 94 95 96 |
# 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, 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
98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/logjam_agent/buffered_logger.rb', line 98 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 |