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]