Class: ShellHelpers::MoreLogger
- Inherits:
-
Logger
- Object
- Logger
- ShellHelpers::MoreLogger
- Defined in:
- lib/shell_helpers/logger.bak.rb
Overview
like Logger but with more levels
Direct Known Subclasses
Defined Under Namespace
Modules: Levels Classes: Formatter
Constant Summary collapse
- WrongLevel =
Class.new(StandardError)
- 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 'success' => Levels::SUCCESS, 'important' => Levels::IMPORTANT, 'warn' => Levels::WARN, #2 'error' => Levels::ERROR, #3 'fatal' => Levels::FATAL, #4 'unknown' => Levels::UNKNOWN, #5 }
Instance Attribute Summary collapse
-
#active ⇒ Object
Returns the value of attribute active.
-
#default ⇒ Object
Returns the value of attribute default.
-
#quiet ⇒ Object
Returns the value of attribute quiet.
Instance Method Summary collapse
-
#add(severity, message = nil, progname = nil, default: @default, quiet: @quiet, callback: nil) ⇒ Object
log with given security.
-
#cli_level(level, active: @active, quiet: @quiet) ⇒ Object
like level= but for clis, so we can pass a default if level=true.
-
#initialize(*args, levels: {}, default: :info, active: :verbose, quiet: :warn, **kwds) ⇒ MoreLogger
constructor
A new instance of MoreLogger.
- #level=(severity) ⇒ Object
- #log_levels ⇒ Object
- #severity(severity, default: @default, quiet: @quiet) ⇒ Object
- #severity_lvl(severity, **opts) ⇒ Object
Constructor Details
#initialize(*args, levels: {}, default: :info, active: :verbose, quiet: :warn, **kwds) ⇒ MoreLogger
Returns a new instance of MoreLogger.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/shell_helpers/logger.bak.rb', line 70 def initialize(*args, levels: {}, default: :info, active: :verbose, quiet: :warn, **kwds) @default=default @active=active @quiet=quiet super(*args, **kwds) @default_formatter = Formatter.new @level=severity_lvl(@default) klass=self.singleton_class levels=log_levels.merge!(levels) levels.keys.each do |lvl, cst| klass.define_method(lvl.to_sym) do |progname=nil, **opts, &block| add(lvl.to_sym, nil, progname, **opts, &block) end klass.define_method("#{lvl}?".to_sym) do @level <= cst end end end |
Instance Attribute Details
#active ⇒ Object
Returns the value of attribute active.
68 69 70 |
# File 'lib/shell_helpers/logger.bak.rb', line 68 def active @active end |
#default ⇒ Object
Returns the value of attribute default.
68 69 70 |
# File 'lib/shell_helpers/logger.bak.rb', line 68 def default @default end |
#quiet ⇒ Object
Returns the value of attribute quiet.
68 69 70 |
# File 'lib/shell_helpers/logger.bak.rb', line 68 def quiet @quiet end |
Instance Method Details
#add(severity, message = nil, progname = nil, default: @default, quiet: @quiet, callback: nil) ⇒ Object
log with given security. Also accepts 'true'
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/shell_helpers/logger.bak.rb', line 90 def add(severity, = nil, progname = nil, default: @default, quiet: @quiet, callback: nil) severity=severity(severity, default: default, quiet: quiet) severity_lvl=severity_lvl(severity) if @logdev.nil? or severity_lvl < @level return true end if progname.nil? progname = @progname end if .nil? if block_given? = yield else = progname progname = @progname end end callback.call(, progname, severity) if callback @logdev.write( (format_severity(severity), Time.now, progname, )) true end |
#cli_level(level, active: @active, quiet: @quiet) ⇒ Object
like level= but for clis, so we can pass a default if level=true
139 140 141 142 143 |
# File 'lib/shell_helpers/logger.bak.rb', line 139 def cli_level(level, active: @active, quiet: @quiet) level=active if level==true #for cli level=quiet if level==false #for cli self.level=level end |
#level=(severity) ⇒ Object
134 135 136 |
# File 'lib/shell_helpers/logger.bak.rb', line 134 def level=(severity) @level = severity_lvl(severity) end |
#log_levels ⇒ Object
63 64 65 66 |
# File 'lib/shell_helpers/logger.bak.rb', line 63 def log_levels @levels ||= LOG_LEVELS.dup @levels end |
#severity(severity, default: @default, quiet: @quiet) ⇒ Object
113 114 115 116 117 118 |
# File 'lib/shell_helpers/logger.bak.rb', line 113 def severity(severity, default: @default, quiet: @quiet) severity ||= UNKNOWN severity=default if severity == true severity=quiet if severity == false severity end |
#severity_lvl(severity, **opts) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/shell_helpers/logger.bak.rb', line 120 def severity_lvl(severity, **opts) severity=severity(severity, **opts) if severity.is_a?(Numeric) return severity else sev=severity.to_s.downcase if log_levels.key?(sev) return log_levels[sev] else raise WrongLevel.new(severity) end end end |