Class: StrftimeLogger
- Inherits:
-
Object
- Object
- StrftimeLogger
- Includes:
- Severity
- Defined in:
- lib/strftime_logger.rb,
lib/strftime_logger/bridge.rb,
lib/strftime_logger/formatter.rb,
lib/strftime_logger/adapter/file.rb,
lib/strftime_logger/ltsv_formatter.rb
Defined Under Namespace
Modules: Severity Classes: Adapter, Bridge, Formatter, LtsvFormatter
Constant Summary collapse
- SEV_LABEL =
[:debug, :info, :warn, :error, :fatal, :unknown]
Constants included from Severity
Severity::DEBUG, Severity::ERROR, Severity::FATAL, Severity::INFO, Severity::UNKNOWN, Severity::WARN
Instance Attribute Summary collapse
-
#formatter ⇒ Object
Returns the value of attribute formatter.
-
#level ⇒ Object
Logging severity threshold (e.g.
Logger::INFO).
Instance Method Summary collapse
- #add(severity, message = nil, &block) ⇒ Object (also: #log)
- #close ⇒ Object
- #debug(msg, &block) ⇒ Object
-
#debug? ⇒ Boolean
Returns
trueiff the current severity level allows for the printing ofDEBUGmessages. - #error(msg, &block) ⇒ Object
-
#error? ⇒ Boolean
Returns
trueiff the current severity level allows for the printing ofERRORmessages. - #fatal(msg, &block) ⇒ Object
-
#fatal? ⇒ Boolean
Returns
trueiff the current severity level allows for the printing ofFATALmessages. - #format_message(severity, message = nil, &block) ⇒ Object
- #info(msg, &block) ⇒ Object
-
#info? ⇒ Boolean
Returns
trueiff the current severity level allows for the printing ofINFOmessages. -
#initialize(path, adapter = nil) ⇒ StrftimeLogger
constructor
Example:.
- #unknown(msg, &block) ⇒ Object
- #warn(msg, &block) ⇒ Object
-
#warn? ⇒ Boolean
Returns
trueiff the current severity level allows for the printing ofWARNmessages. - #write(msg) ⇒ Object
Constructor Details
#initialize(path, adapter = nil) ⇒ StrftimeLogger
Example:
StrftimeLogger.new('/var/log/foo/webapp.log.%Y%m%d') # String
StrftimeLogger.new('/var/log/foo/webapp.log.%Y%m%d_%H')
Exampl2:
# Hash
StrftimeLogger.new({
debug: '/var/log/foo/webapp.debug.log.%Y%m%d',
info: '/var/log/foo/webapp.info.log.%Y%m%d',
warn: '/var/log/foo/webapp.warn.log.%Y%m%d',
error: '/var/log/foo/webapp.error.log.%Y%m%d',
fatal: '/var/log/foo/webapp.fatal.log.%Y%m%d',
unknown: '/var/log/foo/webapp.unknown.log.%Y%m%d'
})
Exampl3:
# With Specified Adapter
StrftimeLogger.new('/var/log/foo/webapp.log.%Y%m%d', [StrftimeLogger::Adapter::File])
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/strftime_logger.rb', line 54 def initialize(path, adapter = nil) @level = DEBUG @default_formatter = StrftimeLogger::Formatter.new @formatter = nil if path.is_a?(Hash) @path = path else # make a hash keys = SEV_LABEL vals = [path] * keys.size @path = Hash[*(keys.zip(vals).flatten(1))] end if adapter.nil? @adapter = {} elsif adapter.is_a?(Hash) @adapter = adapter else # make a hash keys = SEV_LABEL vals = [adapter] * keys.size @adapter = Hash[*(keys.zip(vals).flatten(1))] end @bridge = {} SEV_LABEL.each do |level| @bridge[level] = StrftimeLogger::Bridge.new(level, @path[level], @adapter[level]) end end |
Instance Attribute Details
#formatter ⇒ Object
Returns the value of attribute formatter.
28 29 30 |
# File 'lib/strftime_logger.rb', line 28 def formatter @formatter end |
#level ⇒ Object
Logging severity threshold (e.g. Logger::INFO).
27 28 29 |
# File 'lib/strftime_logger.rb', line 27 def level @level end |
Instance Method Details
#add(severity, message = nil, &block) ⇒ Object Also known as: log
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/strftime_logger.rb', line 86 def add(severity, = nil, &block) severity ||= UNKNOWN if @bridge.nil? or severity < @level return true end log_level = SEV_LABEL[severity] if @bridge[log_level].nil? @bridge[log_level] = StrftimeLogger::Adapter.new(log_level, @path[log_level]) end @bridge[log_level].write((severity, , &block)) true end |
#close ⇒ Object
152 153 154 155 156 157 |
# File 'lib/strftime_logger.rb', line 152 def close SEV_LABEL.each do |level| next if @bridge[level].nil? @bridge[level].close end end |
#debug(msg, &block) ⇒ Object
103 104 105 |
# File 'lib/strftime_logger.rb', line 103 def debug(msg, &block) add(DEBUG, msg, &block) end |
#debug? ⇒ Boolean
Returns true iff the current severity level allows for the printing of DEBUG messages.
134 |
# File 'lib/strftime_logger.rb', line 134 def debug?; @level <= DEBUG; end |
#error(msg, &block) ⇒ Object
115 116 117 |
# File 'lib/strftime_logger.rb', line 115 def error(msg, &block) add(ERROR, msg, &block) end |
#error? ⇒ Boolean
Returns true iff the current severity level allows for the printing of ERROR messages.
146 |
# File 'lib/strftime_logger.rb', line 146 def error?; @level <= ERROR; end |
#fatal(msg, &block) ⇒ Object
119 120 121 |
# File 'lib/strftime_logger.rb', line 119 def fatal(msg, &block) add(FATAL, msg, &block) end |
#fatal? ⇒ Boolean
Returns true iff the current severity level allows for the printing of FATAL messages.
150 |
# File 'lib/strftime_logger.rb', line 150 def fatal?; @level <= FATAL; end |
#format_message(severity, message = nil, &block) ⇒ Object
159 160 161 |
# File 'lib/strftime_logger.rb', line 159 def (severity, = nil, &block) (@formatter || @default_formatter).call(severity, , &block) end |
#info(msg, &block) ⇒ Object
107 108 109 |
# File 'lib/strftime_logger.rb', line 107 def info(msg, &block) add(INFO, msg, &block) end |
#info? ⇒ Boolean
Returns true iff the current severity level allows for the printing of INFO messages.
138 |
# File 'lib/strftime_logger.rb', line 138 def info?; @level <= INFO; end |
#unknown(msg, &block) ⇒ Object
123 124 125 |
# File 'lib/strftime_logger.rb', line 123 def unknown(msg, &block) add(UNKNOWN, msg, &block) end |
#warn(msg, &block) ⇒ Object
111 112 113 |
# File 'lib/strftime_logger.rb', line 111 def warn(msg, &block) add(WARN, msg, &block) end |
#warn? ⇒ Boolean
Returns true iff the current severity level allows for the printing of WARN messages.
142 |
# File 'lib/strftime_logger.rb', line 142 def warn?; @level <= WARN; end |
#write(msg) ⇒ Object
127 128 129 130 |
# File 'lib/strftime_logger.rb', line 127 def write(msg) msg.chomp! if msg.respond_to?(:chomp!) add(INFO, msg) end |