lib/logrb.rb in logrb-0.1.2 vs lib/logrb.rb in logrb-0.1.3
- old
+ new
@@ -86,11 +86,11 @@
inst = Logrb.new(@output, format: @format, level: @level)
inst.fields = @fields.merge(fields)
inst
end
- LEVELS.except(:error).each_key do |name|
+ LEVELS.except(:error, :fatal).each_key do |name|
define_method(name) do |msg, **fields|
return if LEVELS[@level] > LEVELS[name]
wrap(name, msg, nil, fields)
nil
@@ -102,9 +102,18 @@
def error(msg, error = nil, **fields)
return if LEVELS[@level] > LEVELS[:error]
wrap(:error, msg, error, fields)
nil
+ end
+
+ # Public: Emits a fatal message to the log output, and invokes Kernel#exit
+ # with a non-zero status code. When error is provided, this method attempts
+ # to gather a stacktrace to include in the emitted entry. This log entry
+ # cannot be filtered, and is always emitted.
+ def fatal(msg, error = nil, **fields)
+ wrap(:fatal, msg, error, fields)
+ exit 1
end
# Public: Dumps a given String or Array in the same format as `hexdump -C`.
def dump(log, data = nil, **fields)
return if LEVELS[@level] > LEVELS[:debug]