Class: Log4jruby::Logger
- Inherits:
-
Object
- Object
- Log4jruby::Logger
- Defined in:
- lib/log4jruby/logger.rb
Overview
- Author
-
Lenny Marks
Wrapper around org.apache.log4j.Logger with interface similar to standard ruby Logger.
-
Ruby and Java exceptions are logged with backtraces.
-
fileName, lineNumber, methodName available to appender layouts via MDC variables(e.g. %XlineNumber)
Constant Summary collapse
- LOG4J_LEVELS =
{ Java::org.apache.log4j.Level::DEBUG => ::Logger::DEBUG, Java::org.apache.log4j.Level::INFO => ::Logger::INFO, Java::org.apache.log4j.Level::WARN => ::Logger::WARN, Java::org.apache.log4j.Level::ERROR => ::Logger::ERROR, Java::org.apache.log4j.Level::FATAL => ::Logger::FATAL, }
Instance Attribute Summary collapse
-
#formatter ⇒ Object
::Logger::Formatter.
-
#tracing ⇒ Object
turn tracing on to make fileName, lineNumber, and methodName available to appender layout through MDC(ie. %XfileName %XlineNumber %XmethodName).
Class Method Summary collapse
-
.[](name) ⇒ Object
get Logger for name.
-
.get(name, values = {}) ⇒ Object
same as [] but accepts attributes.
-
.reset ⇒ Object
:nodoc:.
-
.root ⇒ Object
Return root Logger(i.e. jruby).
Instance Method Summary collapse
- #attributes=(values) ⇒ Object
- #debug(object = nil, &block) ⇒ Object
- #debug? ⇒ Boolean
- #effective_formatter ⇒ Object
- #error(object = nil, &block) ⇒ Object
- #fatal(object = nil, &block) ⇒ Object
- #flush ⇒ Object
- #info(object = nil, &block) ⇒ Object
- #info? ⇒ Boolean
- #level ⇒ Object
-
#level=(level) ⇒ Object
Shortcut for setting log levels.
-
#log4j_logger ⇒ Object
return org.apache.log4j.Logger instance backing this Logger.
- #log_error(msg, error) ⇒ Object
- #log_fatal(msg, error) ⇒ Object
- #parent ⇒ Object
-
#silence(temporary_level = ::Logger::ERROR) ⇒ Object
Compatibility with ActiveSupport::Logger needed to use a Log4jruby::Logger as an ActiveRecord::Base.logger.
- #tracing? ⇒ Boolean
- #warn(object = nil, &block) ⇒ Object
- #warn? ⇒ Boolean
Instance Attribute Details
#formatter ⇒ Object
::Logger::Formatter
27 28 29 |
# File 'lib/log4jruby/logger.rb', line 27 def formatter @formatter end |
#tracing ⇒ Object
turn tracing on to make fileName, lineNumber, and methodName available to appender layout through MDC(ie. %XfileName %XlineNumber %XmethodName)
24 25 26 |
# File 'lib/log4jruby/logger.rb', line 24 def tracing @tracing end |
Class Method Details
.[](name) ⇒ Object
get Logger for name
31 32 33 34 35 |
# File 'lib/log4jruby/logger.rb', line 31 def[](name) name = name.nil? ? 'jruby' : "jruby.#{name.gsub('::', '.')}" log4j = Java::org.apache.log4j.Logger.getLogger(name) fetch_logger(log4j) end |
.get(name, values = {}) ⇒ Object
same as [] but accepts attributes
38 39 40 41 42 |
# File 'lib/log4jruby/logger.rb', line 38 def get(name, values = {}) logger = self[name] logger.attributes = values logger end |
.reset ⇒ Object
:nodoc:
50 51 52 53 54 |
# File 'lib/log4jruby/logger.rb', line 50 def reset # :nodoc: Java::org.apache.log4j.LogManager.getCurrentLoggers.each do |l| l.ruby_logger = nil end end |
.root ⇒ Object
Return root Logger(i.e. jruby)
45 46 47 48 |
# File 'lib/log4jruby/logger.rb', line 45 def root log4j = Java::org.apache.log4j.Logger.getLogger('jruby') fetch_logger(log4j) end |
Instance Method Details
#attributes=(values) ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/log4jruby/logger.rb', line 63 def attributes=(values) if values values.each_pair do |k, v| setter = "#{k}=" send(setter, v) if respond_to?(setter) end end end |
#debug(object = nil, &block) ⇒ Object
98 99 100 101 102 |
# File 'lib/log4jruby/logger.rb', line 98 def debug(object = nil, &block) if debug? send_to_log4j(:debug, object, nil, &block) end end |
#debug? ⇒ Boolean
137 138 139 |
# File 'lib/log4jruby/logger.rb', line 137 def debug? @logger.isEnabledFor(Java::org.apache.log4j.Priority::DEBUG) end |
#effective_formatter ⇒ Object
160 161 162 163 164 165 166 167 168 169 |
# File 'lib/log4jruby/logger.rb', line 160 def effective_formatter return @formatter if defined?(@formatter) @formatter = begin if @formatter.nil? && self != Logger.root parent.formatter else @formatter end end end |
#error(object = nil, &block) ⇒ Object
116 117 118 |
# File 'lib/log4jruby/logger.rb', line 116 def error(object = nil, &block) send_to_log4j(:error, object, nil, &block) end |
#fatal(object = nil, &block) ⇒ Object
124 125 126 |
# File 'lib/log4jruby/logger.rb', line 124 def fatal(object = nil, &block) send_to_log4j(:fatal, object, nil, &block) end |
#flush ⇒ Object
94 95 96 |
# File 'lib/log4jruby/logger.rb', line 94 def flush #rails compatability end |
#info(object = nil, &block) ⇒ Object
104 105 106 107 108 |
# File 'lib/log4jruby/logger.rb', line 104 def info(object = nil, &block) if info? send_to_log4j(:info, object, nil, &block) end end |
#info? ⇒ Boolean
141 142 143 |
# File 'lib/log4jruby/logger.rb', line 141 def info? @logger.isEnabledFor(Java::org.apache.log4j.Priority::INFO) end |
#level ⇒ Object
90 91 92 |
# File 'lib/log4jruby/logger.rb', line 90 def level LOG4J_LEVELS[@logger.effectiveLevel] end |
#level=(level) ⇒ Object
Shortcut for setting log levels. (:debug, :info, :warn, :error, :fatal)
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/log4jruby/logger.rb', line 73 def level=(level) @logger.level = case level when :debug, ::Logger::DEBUG Java::org.apache.log4j.Level::DEBUG when :info, ::Logger::INFO Java::org.apache.log4j.Level::INFO when :warn, ::Logger::WARN Java::org.apache.log4j.Level::WARN when :error, ::Logger::ERROR Java::org.apache.log4j.Level::ERROR when :fatal, ::Logger::FATAL Java::org.apache.log4j.Level::FATAL else raise NotImplementedError end end |
#log4j_logger ⇒ Object
return org.apache.log4j.Logger instance backing this Logger
133 134 135 |
# File 'lib/log4jruby/logger.rb', line 133 def log4j_logger @logger end |
#log_error(msg, error) ⇒ Object
120 121 122 |
# File 'lib/log4jruby/logger.rb', line 120 def log_error(msg, error) send_to_log4j(:error, msg, error) end |
#log_fatal(msg, error) ⇒ Object
128 129 130 |
# File 'lib/log4jruby/logger.rb', line 128 def log_fatal(msg, error) send_to_log4j(:fatal, msg, error) end |
#parent ⇒ Object
171 172 173 |
# File 'lib/log4jruby/logger.rb', line 171 def parent fetch_logger(log4j_logger.parent) end |
#silence(temporary_level = ::Logger::ERROR) ⇒ Object
Compatibility with ActiveSupport::Logger needed to use a Log4jruby::Logger as an ActiveRecord::Base.logger
177 178 179 180 181 182 183 184 |
# File 'lib/log4jruby/logger.rb', line 177 def silence(temporary_level = ::Logger::ERROR) begin old_logger_level, self.level = level, temporary_level yield self ensure self.level = old_logger_level end end |
#tracing? ⇒ Boolean
149 150 151 152 153 154 155 156 157 158 |
# File 'lib/log4jruby/logger.rb', line 149 def tracing? return @cached_tracing if defined?(@cached_tracing) @cached_tracing = begin if tracing.nil? && self != Logger.root parent.tracing? else tracing == true end end end |
#warn(object = nil, &block) ⇒ Object
110 111 112 113 114 |
# File 'lib/log4jruby/logger.rb', line 110 def warn(object = nil, &block) if warn? send_to_log4j(:warn, object, nil, &block) end end |
#warn? ⇒ Boolean
145 146 147 |
# File 'lib/log4jruby/logger.rb', line 145 def warn? @logger.isEnabledFor(Java::org.apache.log4j.Priority::WARN) end |