Sha256: 77fd9243be9f83df93b52cebd6aaaf8152d48f7b90638c6ea7147dacbcc681d9
Contents?: true
Size: 1.55 KB
Versions: 3
Compression:
Stored size: 1.55 KB
Contents
module Log4r class Outputter < Monitor # Log4r creates the logging methods dynamically - quite cleverly creating # only those methods that are required, but not that transparent. # # To add filter support we 'monkey patch' the original implementation of # +define_log+ in 'outputterfactory.rb' by adding in the filter call. # This slows down the run time, but that is not so important. # class OutputterFactory # original comment: we need to synch the actual write/format for thread saftyness def self.define_log(mname, level, out) return if mname == 'off' || mname == 'all' # p [mname,level,out] # # At runtime, self and logevent are available to the method: # [:self, #<Log4r::StderrOutputter:0x9f8975c @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x9f89694>, @name="stderr", @level=0, @formatter=#<Log4r::DefaultFormatter:0x9f7c174 @depth=7>, @out=#<IO:<STDERR>>>] # [:logevent, #<Log4r::LogEvent:0xa198de0 @data="As Developer ERROR should fail", @tracer=nil, @level=4, @name="mylog", @fullname="mylog">] mstr = %- def out.#{mname}(logevent) if self.class.method_defined?(:filtered?) # p logevent if !filtered?(logevent.level,nil,logevent.data) # p "**** returning nil for "+logevent.data return nil end end canonical_log(logevent) end - module_eval mstr end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bio-logger-1.0.1 | lib/bio/log/patchlog4r.rb |
bio-logger-1.0.0 | lib/bio/log/patchlog4r.rb |
bio-logger-0.9.0 | lib/bio/log/patchlog4r.rb |