Class: Facter::Log
- Inherits:
-
Object
- Object
- Facter::Log
- Defined in:
- lib/facter/framework/logging/logger.rb
Constant Summary collapse
- @@logger =
nil
- @@message_callback =
nil
- @@has_errors =
false
- @@debug_messages =
[]
- @@warn_messages =
[]
- @@timing =
false
Class Method Summary collapse
- .clear_messages ⇒ Object
- .errors? ⇒ Boolean
- .level ⇒ Object
- .level=(log_level) ⇒ Object
- .on_message(&block) ⇒ Object
- .output(output) ⇒ Object
- .set_logger_format ⇒ Object
-
.show_time(string) ⇒ void
private
Print timing information.
-
.timing(bool) ⇒ void
private
Enable or disable logging of timing information.
-
.timing? ⇒ Boolean
private
Returns whether timing output is turned on.
Instance Method Summary collapse
- #debug(msg) ⇒ Object
- #debugonce(msg) ⇒ Object
- #error(msg, colorize = false) ⇒ Object
- #info(msg) ⇒ Object
-
#initialize(logged_class) ⇒ Log
constructor
A new instance of Log.
- #log_exception(exception) ⇒ Object
- #warn(msg) ⇒ Object
- #warnonce(message) ⇒ Object
Constructor Details
#initialize(logged_class) ⇒ Log
Returns a new instance of Log.
95 96 97 98 99 100 101 |
# File 'lib/facter/framework/logging/logger.rb', line 95 def initialize(logged_class) @class_name = LoggerHelper.determine_callers_name(logged_class) return unless @@logger.nil? @@logger = Logger.new(STDOUT) @@logger.level = DEFAULT_LOG_LEVEL end |
Class Method Details
.clear_messages ⇒ Object
23 24 25 26 |
# File 'lib/facter/framework/logging/logger.rb', line 23 def @@debug_messages.clear @@warn_messages.clear end |
.errors? ⇒ Boolean
40 41 42 |
# File 'lib/facter/framework/logging/logger.rb', line 40 def errors? @@has_errors end |
.level ⇒ Object
36 37 38 |
# File 'lib/facter/framework/logging/logger.rb', line 36 def level @@logger.level end |
.level=(log_level) ⇒ Object
32 33 34 |
# File 'lib/facter/framework/logging/logger.rb', line 32 def level=(log_level) @@logger.level = log_level end |
.on_message(&block) ⇒ Object
28 29 30 |
# File 'lib/facter/framework/logging/logger.rb', line 28 def (&block) @@message_callback = block end |
.output(output) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/facter/framework/logging/logger.rb', line 44 def output(output) return if @@logger @@logger = Logger.new(output) set_logger_format @@logger.level = DEFAULT_LOG_LEVEL end |
.set_logger_format ⇒ Object
52 53 54 55 56 57 |
# File 'lib/facter/framework/logging/logger.rb', line 52 def set_logger_format @@logger.formatter = proc do |severity, datetime, _progname, msg| datetime = datetime.strftime(@datetime_format || '%Y-%m-%d %H:%M:%S.%6N ') "[#{datetime}] #{severity} #{msg} \n" end end |
.show_time(string) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Print timing information
67 68 69 70 71 72 73 74 75 |
# File 'lib/facter/framework/logging/logger.rb', line 67 def show_time(string) return unless string && timing? if @@message_callback @@message_callback.call(:info, string) else warn("#{GREEN}#{string}#{RESET}") end end |
.timing(bool) ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Enable or disable logging of timing information
83 84 85 |
# File 'lib/facter/framework/logging/logger.rb', line 83 def timing(bool) @@timing = bool end |
.timing? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns whether timing output is turned on
90 91 92 |
# File 'lib/facter/framework/logging/logger.rb', line 90 def timing? @@timing end |
Instance Method Details
#debug(msg) ⇒ Object
103 104 105 106 107 108 109 110 111 112 |
# File 'lib/facter/framework/logging/logger.rb', line 103 def debug(msg) return unless debugging_active? if @@message_callback && Options[:allow_external_loggers] @@message_callback.call(:debug, msg) else msg = colorize(msg, CYAN) if Options[:color] @@logger.debug(@class_name + ' - ' + msg) end end |
#debugonce(msg) ⇒ Object
114 115 116 117 118 119 120 121 122 |
# File 'lib/facter/framework/logging/logger.rb', line 114 def debugonce(msg) return unless debugging_active? = msg.to_s return if @@debug_messages.include? @@debug_messages << debug() end |
#error(msg, colorize = false) ⇒ Object
152 153 154 155 156 157 158 159 160 161 |
# File 'lib/facter/framework/logging/logger.rb', line 152 def error(msg, colorize = false) @@has_errors = true if @@message_callback && Options[:allow_external_loggers] @@message_callback.call(:error, msg) else msg = colorize(msg, RED) if colorize || Options[:color] @@logger.error(@class_name + ' - ' + msg) end end |
#info(msg) ⇒ Object
124 125 126 127 128 129 130 131 132 133 |
# File 'lib/facter/framework/logging/logger.rb', line 124 def info(msg) if msg.nil? || msg.empty? (msg) elsif @@message_callback && Options[:allow_external_loggers] @@message_callback.call(:info, msg) else msg = colorize(msg, GREEN) if Options[:color] @@logger.info(@class_name + ' - ' + msg) end end |
#log_exception(exception) ⇒ Object
163 164 165 166 167 168 |
# File 'lib/facter/framework/logging/logger.rb', line 163 def log_exception(exception) msg = exception. msg += "\n" + exception.backtrace.join("\n") if Options[:trace] error(msg, true) end |
#warn(msg) ⇒ Object
135 136 137 138 139 140 141 142 |
# File 'lib/facter/framework/logging/logger.rb', line 135 def warn(msg) if @@message_callback && Options[:allow_external_loggers] @@message_callback.call(:warn, msg) else msg = colorize(msg, YELLOW) if Options[:color] @@logger.warn(@class_name + ' - ' + msg) end end |
#warnonce(message) ⇒ Object
144 145 146 147 148 149 150 |
# File 'lib/facter/framework/logging/logger.rb', line 144 def warnonce() = .to_s return if @@warn_messages.include? @@warn_messages << warn() end |