Module: LunaPark::Extensions::SeverityLevels
- Included in:
- Notifiers::Bugsnag, Notifiers::Log, Notifiers::Sentry, Notifiers::TaggedLog
- Defined in:
- lib/luna_park/extensions/severity_levels.rb
Constant Summary collapse
- LEVELS =
This is class define interface for loggers and notifiers behavior. In main idea it based on rfc5424 tools.ietf.org/html/rfc5424, but in fact default ruby logger does not define all severities, and we use only most important:
- unknown: an unknown message that should always be logged - fatal: An unhandleable error that results in a program crash - error: system work incorrectly, and maintainer should know about that immediately - warning: warning conditions, and maintainer should know about that, but not immediately - info: informational messages, maintainer should know about that, if they want to analyse logs - debug: debug messages, for developers don't use it on production
%i[debug info warning error fatal unknown].freeze
Instance Method Summary collapse
-
#debug(msg = '', **details) ⇒ Object
Post message with DEBUG severity level.
-
#error(msg = '', **details) ⇒ Object
Post message with ERROR severity level.
-
#fatal(msg = '', **details) ⇒ Object
Post message with FATAL severity level.
-
#info(msg = '', **details) ⇒ Object
Post message with INFO severity level.
-
#min_lvl ⇒ Object
Defined minimum severity level.
- #min_lvl=(value) ⇒ Object
- #post(_msg = '', _lvl:, **_details) ⇒ Object abstract
-
#unknown(msg = '', **details) ⇒ Object
Post message with UNKNOWN severity level.
-
#warning(msg = '', **details) ⇒ Object
Post stdout message with WARNING severity level.
Instance Method Details
#debug(msg = '', **details) ⇒ Object
Post message with DEBUG severity level
105 106 107 108 109 110 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 105 def debug(msg = '', **details) if min_lvl == :debug = block_given? ? yield : msg post , lvl: :debug, **details end end |
#error(msg = '', **details) ⇒ Object
Post message with ERROR severity level
70 71 72 73 74 75 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 70 def error(msg = '', **details) if %i[debug info warning error].include? min_lvl = block_given? ? yield : msg post , lvl: :error, **details end end |
#fatal(msg = '', **details) ⇒ Object
Post message with FATAL severity level
59 60 61 62 63 64 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 59 def fatal(msg = '', **details) if %i[debug info warning error fatal].include? min_lvl = block_given? ? yield : msg post , lvl: :fatal, **details end end |
#info(msg = '', **details) ⇒ Object
Post message with INFO severity level
94 95 96 97 98 99 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 94 def info(msg = '', **details) if %i[debug info].include? min_lvl = block_given? ? yield : msg post , lvl: :info, **details end end |
#min_lvl ⇒ Object
Defined minimum severity level
34 35 36 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 34 def min_lvl @min_lvl ||= :debug end |
#min_lvl=(value) ⇒ Object
38 39 40 41 42 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 38 def min_lvl=(value) raise ArgumentError, 'Undefined severity level' unless LEVELS.include? value @min_lvl = value end |
#post(_msg = '', _lvl:, **_details) ⇒ Object
115 116 117 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 115 def post(_msg = '', _lvl:, **_details) raise Errors::AbstractMethod end |
#unknown(msg = '', **details) ⇒ Object
Post message with UNKNOWN severity level
50 51 52 53 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 50 def unknown(msg = '', **details) = block_given? ? yield : msg post , lvl: :unknown, **details end |
#warning(msg = '', **details) ⇒ Object
Post stdout message with WARNING severity level
81 82 83 84 85 86 |
# File 'lib/luna_park/extensions/severity_levels.rb', line 81 def warning(msg = '', **details) if %i[debug info warning].include? min_lvl = block_given? ? yield : msg post , lvl: :warning, **details end end |