Class: ShellHelpers::ColorLogger
- Inherits:
-
MoreLogger
- Object
- Logger
- MoreLogger
- ShellHelpers::ColorLogger
- Defined in:
- lib/shell_helpers/logger.rb,
lib/shell_helpers/logger.bak.rb
Overview
{{{1
Direct Known Subclasses
Defined Under Namespace
Modules: Levels
Constant Summary collapse
- ColorLoggerError =
{{{1
Class.new(StandardError)
- WrongLevel =
Class.new(ColorLoggerError)
- LOG_LEVELS =
{ quiet: Levels::QUIET, debug3: Levels::DEBUG3, debug2: Levels::DEBUG2, debug1: Levels::DEBUG1, debug: Levels::DEBUG, #0 verbose: Levels::VERBOSE, verbose1: Levels::VERBOSE1, verbose2: Levels::VERBOSE2, verbose3: Levels::VERBOSE3, info: Levels::INFO, #1 mark: :info, success: Levels::SUCCESS, important: Levels::IMPORTANT, warn: Levels::WARN, #2 error: Levels::ERROR, #3 fatal: Levels::FATAL, #4 unknown: Levels::UNKNOWN, #5 }
- CLI_COLORS_BASE =
{ # info: [:bold], success: [:green, :bold], important: [:blue, :bold], warn: [:yellow, :bold], error: [:red, :bold], fatal: [:red, :bold] }
- CLI_COLORS =
{ mark: {lvl: :info, colors: :bold} }
Instance Attribute Summary collapse
-
#default_formatter ⇒ Object
Returns the value of attribute default_formatter.
-
#default_lvl ⇒ Object
Returns the value of attribute default_lvl.
-
#quiet_lvl ⇒ Object
Returns the value of attribute quiet_lvl.
-
#raw ⇒ Object
Returns the value of attribute raw.
-
#verbose_lvl ⇒ Object
Returns the value of attribute verbose_lvl.
Attributes inherited from MoreLogger
Instance Method Summary collapse
-
#add(severity, message = nil, progname = nil, color: [], raw: @raw, **args) ⇒ Object
log with given security.
- #cli_colors ⇒ Object
-
#cli_level(level, active: @verbose_lvl, disactive: @quiet_lvl) ⇒ Object
like level= but for clis, so we can pass a default if level=true.
- #datetime_format ⇒ Object
- #datetime_format=(datetime_format) ⇒ Object
- #format_message(severity, datetime, progname, msg, formatter: nil, **opts) ⇒ Object
- #formatter=(form) ⇒ Object
- #get_formatter(form = nil) ⇒ Object
-
#initialize(*args, cli: {}, **kwds) {|_self, @default_formatter| ... } ⇒ ColorLogger
constructor
A new instance of ColorLogger.
- #level=(severity) ⇒ Object
- #log_levels ⇒ Object
- #severity(severity, default_lvl: @default_lvl, quiet_lvl: @quiet_lvl, **_opts) ⇒ Object
- #severity_lvl(severity, **opts) ⇒ Object
Constructor Details
#initialize(*args, cli: {}, **kwds) {|_self, @default_formatter| ... } ⇒ ColorLogger
Returns a new instance of ColorLogger.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/shell_helpers/logger.rb', line 152 def initialize(*args, levels: {}, default_lvl: :info, level: default_lvl, verbose_lvl: :verbose, quiet_lvl: :unknown, default_formatter: :color, **kwds) @default_lvl=default_lvl @verbose_lvl=verbose_lvl @quiet_lvl=quiet_lvl super(*args, level: severity_lvl(level), **kwds) @default_formatter = ColorFormatter.create(default_formatter) @level=severity_lvl(@default_lvl) klass=self.singleton_class levels=log_levels.merge!(levels) levels.keys.each do |lvl| klass.class_eval do define_method(lvl.to_sym) do |msg=nil, **opts, &block| add(lvl.to_sym, msg, **opts, &block) end define_method("#{lvl}?".to_sym) do @level <= severity_lvl(lvl) end end end yield self, @default_formatter if block_given? end |
Instance Attribute Details
#default_formatter ⇒ Object
Returns the value of attribute default_formatter.
150 151 152 |
# File 'lib/shell_helpers/logger.rb', line 150 def default_formatter @default_formatter end |
#default_lvl ⇒ Object
Returns the value of attribute default_lvl.
150 151 152 |
# File 'lib/shell_helpers/logger.rb', line 150 def default_lvl @default_lvl end |
#quiet_lvl ⇒ Object
Returns the value of attribute quiet_lvl.
150 151 152 |
# File 'lib/shell_helpers/logger.rb', line 150 def quiet_lvl @quiet_lvl end |
#raw ⇒ Object
Returns the value of attribute raw.
206 207 208 |
# File 'lib/shell_helpers/logger.bak.rb', line 206 def raw @raw end |
#verbose_lvl ⇒ Object
Returns the value of attribute verbose_lvl.
150 151 152 |
# File 'lib/shell_helpers/logger.rb', line 150 def verbose_lvl @verbose_lvl end |
Instance Method Details
#add(severity, message = nil, progname = nil, color: [], raw: @raw, **args) ⇒ Object
log with given security. Also accepts 'true'
206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
# File 'lib/shell_helpers/logger.rb', line 206 def add(severity, = nil, progname: @progname, callback: nil, format: nil, **opts) severity=severity(severity, **opts) severity_lvl=severity_lvl(severity) if @logdev.nil? or severity_lvl < @level return true end if .nil? = yield if block_given? end callback.call(, progname, severity) if callback @logdev.write( (severity, Time.now, progname, , formatter: format, caller: self, **opts)) true end |
#cli_colors ⇒ Object
160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/shell_helpers/logger.bak.rb', line 160 def cli_colors return @cli_colors if defined?(@cli_colors) @cli_colors={} base_colors=CLI_COLORS_BASE base_colors.each do |k,v| r={colors: v} @cli_colors[k.to_sym]=r end @cli_colors.merge!(CLI_COLORS) @cli_colors #mode => {lvl: lvl, colors: colors } end |
#cli_level(level, active: @verbose_lvl, disactive: @quiet_lvl) ⇒ Object
like level= but for clis, so we can pass a default if level=true
226 227 228 229 230 |
# File 'lib/shell_helpers/logger.rb', line 226 def cli_level(level, active: @verbose_lvl, disactive: @quiet_lvl) level=active if level==true #for cli level=disactive if level==false #for cli self.level=level end |
#datetime_format ⇒ Object
179 180 181 |
# File 'lib/shell_helpers/logger.rb', line 179 def datetime_format @default_formatter.datetime_format if @default_formatter.respond_to?(:datetime_format) end |
#datetime_format=(datetime_format) ⇒ Object
174 175 176 177 |
# File 'lib/shell_helpers/logger.rb', line 174 def datetime_format=(datetime_format) @default_formatter.datetime_format = datetime_format if @default_formatter.respond_to?(:datetime_format) @formatter.datetime_format = datetime_format if defined? @formatter and @formatter.respond_to?(:datetime_format) end |
#format_message(severity, datetime, progname, msg, formatter: nil, **opts) ⇒ Object
201 202 203 |
# File 'lib/shell_helpers/logger.rb', line 201 def (severity, datetime, progname, msg, formatter: nil, **opts) get_formatter(formatter).call(severity, datetime, progname, msg, **opts) end |
#formatter=(form) ⇒ Object
183 184 185 186 187 188 189 |
# File 'lib/shell_helpers/logger.rb', line 183 def formatter=(form) if form.nil? super else @formatter=get_formatter(form) end end |
#get_formatter(form = nil) ⇒ Object
191 192 193 194 195 196 197 198 199 |
# File 'lib/shell_helpers/logger.rb', line 191 def get_formatter(form=nil) if form.nil? @formatter || @default_formatter else formatter=ColorFormatter.create(form) formatter.datetime_format = @default_formatter.datetime_format if formatter.respond_to?(:datetime_format) and @default_formatter.respond_to?(:datetime_format) formatter end end |
#level=(severity) ⇒ Object
221 222 223 |
# File 'lib/shell_helpers/logger.rb', line 221 def level=(severity) @level = severity_lvl(severity) end |
#log_levels ⇒ Object
124 125 126 127 |
# File 'lib/shell_helpers/logger.rb', line 124 def log_levels @levels ||= LOG_LEVELS.dup @levels end |
#severity(severity, default_lvl: @default_lvl, quiet_lvl: @quiet_lvl, **_opts) ⇒ Object
129 130 131 132 133 134 |
# File 'lib/shell_helpers/logger.rb', line 129 def severity(severity, default_lvl: @default_lvl, quiet_lvl: @quiet_lvl, **_opts) severity ||= :unknown severity=default_lvl if severity == true severity=quiet_lvl if severity == false severity end |
#severity_lvl(severity, **opts) ⇒ Object
136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/shell_helpers/logger.rb', line 136 def severity_lvl(severity, **opts) severity=severity(severity, **opts) if severity.is_a?(Numeric) return severity else sev=severity.to_s.downcase.to_sym if log_levels.key?(sev) return severity_lvl(log_levels[sev]) else raise WrongLevel.new(severity) end end end |