Class: StateFu::Logger
Overview
TODO - spec coverage
Provide logging facilities, including the ability to use a shared logger.
Use Rails’ log if running as a rails plugin; allow independent control of StateFu log level.
Constant Summary collapse
- DEBUG =
0
- INFO =
1
- WARN =
2
- ERROR =
3
- FATAL =
4
- UNKNOWN =
5
- ENV_LOG_LEVEL =
'STATEFU_LOGLEVEL'
- DEFAULT_LEVEL =
INFO
- DEFAULT_SHARED_LOG_PREFIX =
'[StateFu] '
- @@prefix =
DEFAULT_SHARED_LOG_PREFIX
- @@logger =
nil
- @@suppress =
false
false
- @@log_level =
nil
Class Method Summary collapse
- .add(severity, message = nil, progname = nil, &block) ⇒ Object
- .debug(progname = nil, &block) ⇒ Object
- .error(progname = nil, &block) ⇒ Object
- .fatal(progname = nil, &block) ⇒ Object
- .info(progname = nil, &block) ⇒ Object
- .initial_log_level ⇒ Object
- .instance ⇒ Object
- .level ⇒ Object
- .level=(new_level) ⇒ Object
- .logger=(logger) ⇒ Object
- .new(logger = $stdout, options = {}) ⇒ Object
- .prefix ⇒ Object
-
.set_logger(logger, options = { :shared => false }) ⇒ Object
setter for logger instance.
- .shared? ⇒ Boolean
- .suppress! ⇒ Object
- .suppressed?(severity = DEBUG) ⇒ Boolean
- .unknown(progname = nil, &block) ⇒ Object
- .warn(progname = nil, &block) ⇒ Object
Class Method Details
.add(severity, message = nil, progname = nil, &block) ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/support/logger.rb', line 81 def self.add(severity, = nil, progname = nil, &block) severity = parse_log_level( severity ) return if suppressed?( severity ) = [prefix, ( || (block && block.call) || progname).to_s].compact.join # message = "#{message}\n" unless message[-1] == ?\n instance.add( severity, ) end |
.debug(progname = nil, &block) ⇒ Object
89 |
# File 'lib/support/logger.rb', line 89 def self.debug progname = nil, █ add DEBUG, progname, █ end |
.error(progname = nil, &block) ⇒ Object
92 |
# File 'lib/support/logger.rb', line 92 def self.error progname = nil, █ add ERROR, progname, █ end |
.fatal(progname = nil, &block) ⇒ Object
93 |
# File 'lib/support/logger.rb', line 93 def self.fatal progname = nil, █ add FATAL, progname, █ end |
.info(progname = nil, &block) ⇒ Object
90 |
# File 'lib/support/logger.rb', line 90 def self.info progname = nil, █ add INFO, progname, █ end |
.initial_log_level ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/support/logger.rb', line 41 def self.initial_log_level if env_level = ENV[ENV_LOG_LEVEL] parse_log_level( env_level ) else DEFAULT_LEVEL end end |
.instance ⇒ Object
69 70 71 |
# File 'lib/support/logger.rb', line 69 def self.instance @@logger ||= set_logger(Logger.default_logger) end |
.level ⇒ Object
49 50 51 |
# File 'lib/support/logger.rb', line 49 def self.level @@log_level ||= initial_log_level end |
.level=(new_level) ⇒ Object
53 54 55 |
# File 'lib/support/logger.rb', line 53 def self.level=( new_level ) @@log_level = parse_log_level(new_level) end |
.logger=(logger) ⇒ Object
65 66 67 |
# File 'lib/support/logger.rb', line 65 def self.logger= logger set_logger logger end |
.new(logger = $stdout, options = {}) ⇒ Object
35 36 37 38 39 |
# File 'lib/support/logger.rb', line 35 def self.new( logger = $stdout, ={} ) self.suppress = false self.logger = logger, self end |
.prefix ⇒ Object
61 62 63 |
# File 'lib/support/logger.rb', line 61 def self.prefix shared? ? @@prefix : nil end |
.set_logger(logger, options = { :shared => false }) ⇒ Object
setter for logger instance
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/support/logger.rb', line 101 def self.set_logger( logger, = { :shared => false } ) case logger when String file = File.open(logger, File::WRONLY | File::APPEND) @@logger = Logger.activesupport_logger_available? ? ActiveSupport::BufferedLogger.new(file) : ::Logger.new(file) when ::Logger @@logger = logger when Logger.activesupport_logger_available? && ActiveSupport::BufferedLogger @@logger = logger else raise ArgumentError.new end self.shared = !!.symbolize_keys![:shared] if shared? @@prefix = [:prefix] || DEFAULT_SHARED_LOG_PREFIX puts "shared :: #{@@prefix} #{prefix}" end if lvl = [:level] || [:log_level] self.level = lvl end instance end |
.shared? ⇒ Boolean
57 58 59 |
# File 'lib/support/logger.rb', line 57 def self.shared? !! @@shared end |
.suppress! ⇒ Object
73 74 75 |
# File 'lib/support/logger.rb', line 73 def self.suppress! self.suppress = true end |
.suppressed?(severity = DEBUG) ⇒ Boolean
77 78 79 |
# File 'lib/support/logger.rb', line 77 def self.suppressed?(severity = DEBUG) suppress == true || severity < level end |