ougai 1.8.5 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/ougai/logger.rb +5 -4
- data/lib/ougai/logging.rb +23 -15
- data/lib/ougai/version.rb +1 -1
- data/spec/logger_spec.rb +8 -0
- data/spec/logging_spec.rb +58 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b9254ac3650ca12026fbd3d3c6b474a8de478fb81ea82f19fecdff6b62c8b17
|
4
|
+
data.tar.gz: 95c71a88355673d0821596503057ad46761c3b508ab7a0b72b806462f8a3af7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c7cdf6d3ad6cfbaae66438cc40971a5cbd978ad9585c2ed4538cea3530184f53a3e0f2a87c22cfcfc581ecbb596eb7b7d2468edc26e7c1b05d27832d856bbcf
|
7
|
+
data.tar.gz: bed8c16d8e851d7b64d52b86084c13f333a0cee873ab4c1bd8670083c700597a587cb6edf39cead61711af747d30b0723d6bf63ac6eadd1c4de0fb7611d8f16c
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@ Ougai
|
|
2
2
|
=====
|
3
3
|
|
4
4
|
[](https://badge.fury.io/rb/ougai)
|
5
|
-
[](http://www.rubydoc.info/gems/ougai/)
|
6
6
|
[](https://travis-ci.org/tilfin/ougai)
|
7
7
|
[](https://codeclimate.com/github/tilfin/ougai)
|
8
8
|
[](https://codeclimate.com/github/tilfin/ougai/coverage)
|
data/lib/ougai/logger.rb
CHANGED
@@ -7,6 +7,7 @@ module Ougai
|
|
7
7
|
# @attr [Hash] with_fields The fields appending to all logs.
|
8
8
|
# @attr [Proc] before_log Hook before logging.
|
9
9
|
class Logger < ::Logger
|
10
|
+
alias_method :super_add, :add
|
10
11
|
include Logging
|
11
12
|
|
12
13
|
attr_accessor :default_message, :exc_key
|
@@ -38,9 +39,9 @@ module Ougai
|
|
38
39
|
# @param logger [Logger] The logger receiving broadcast logs.
|
39
40
|
def self.broadcast(logger)
|
40
41
|
Module.new do |mdl|
|
41
|
-
define_method(:
|
42
|
-
logger.
|
43
|
-
super(*args)
|
42
|
+
define_method(:add) do |*args, &block|
|
43
|
+
logger.add(*args, &block)
|
44
|
+
super(*args, &block)
|
44
45
|
end
|
45
46
|
|
46
47
|
define_method(:level=) do |level|
|
@@ -111,7 +112,7 @@ module Ougai
|
|
111
112
|
hooks.each do |hook|
|
112
113
|
return false if hook.call(data) == false
|
113
114
|
end
|
114
|
-
|
115
|
+
super_add(severity, data)
|
115
116
|
end
|
116
117
|
|
117
118
|
def to_item(args)
|
data/lib/ougai/logging.rb
CHANGED
@@ -28,7 +28,7 @@ module Ougai
|
|
28
28
|
# @return [Boolean] true
|
29
29
|
# @see Logging#debug
|
30
30
|
def trace(message = nil, ex = nil, data = nil, &block)
|
31
|
-
|
31
|
+
add(TRACE, message, ex, data, &block)
|
32
32
|
end
|
33
33
|
|
34
34
|
# Log any one or more of a message, an exception and structured data as DEBUG.
|
@@ -39,43 +39,42 @@ module Ougai
|
|
39
39
|
# @yieldreturn [String|Exception|Object|Array] Any one or more of former parameters
|
40
40
|
# @return [Boolean] true
|
41
41
|
def debug(message = nil, ex = nil, data = nil, &block)
|
42
|
-
|
42
|
+
add(DEBUG, message, ex, data, &block)
|
43
43
|
end
|
44
44
|
|
45
45
|
# Log any one or more of a message, an exception and structured data as INFO.
|
46
46
|
# @return [Boolean] true
|
47
47
|
# @see Logging#debug
|
48
48
|
def info(message = nil, ex = nil, data = nil, &block)
|
49
|
-
|
49
|
+
add(INFO, message, ex, data, &block)
|
50
50
|
end
|
51
51
|
|
52
52
|
# Log any one or more of a message, an exception and structured data as WARN.
|
53
53
|
# @return [Boolean] true
|
54
54
|
# @see Logging#debug
|
55
55
|
def warn(message = nil, ex = nil, data = nil, &block)
|
56
|
-
|
56
|
+
add(WARN, message, ex, data, &block)
|
57
57
|
end
|
58
58
|
|
59
59
|
# Log any one or more of a message, an exception and structured data as ERROR.
|
60
60
|
# @return [Boolean] true
|
61
61
|
# @see Logging#debug
|
62
62
|
def error(message = nil, ex = nil, data = nil, &block)
|
63
|
-
|
63
|
+
add(ERROR, message, ex, data, &block)
|
64
64
|
end
|
65
65
|
|
66
66
|
# Log any one or more of a message, an exception and structured data as FATAL.
|
67
67
|
# @return [Boolean] true
|
68
68
|
# @see Logging#debug
|
69
69
|
def fatal(message = nil, ex = nil, data = nil, &block)
|
70
|
-
|
70
|
+
add(FATAL, message, ex, data, &block)
|
71
71
|
end
|
72
72
|
|
73
73
|
# Log any one or more of a message, an exception and structured data as UNKNOWN.
|
74
74
|
# @return [Boolean] true
|
75
75
|
# @see Logging#debug
|
76
76
|
def unknown(message = nil, ex = nil, data = nil, &block)
|
77
|
-
|
78
|
-
append(UNKNOWN, args)
|
77
|
+
add(UNKNOWN, message, ex, data, &block)
|
79
78
|
end
|
80
79
|
|
81
80
|
# Whether the current severity level allows for logging TRACE.
|
@@ -84,6 +83,22 @@ module Ougai
|
|
84
83
|
level <= TRACE
|
85
84
|
end
|
86
85
|
|
86
|
+
# Log any one or more of a message, an exception and structured data as specified log level.
|
87
|
+
# If the block is given for delay evaluation, it returns them as an array or the one of them as a value.
|
88
|
+
# @param severity [Integer] The log level.
|
89
|
+
# @param message [String] The message to log. Use default_message if not specified.
|
90
|
+
# @param ex [Exception] The exception or the error
|
91
|
+
# @param data [Object] Any structured data
|
92
|
+
# @yieldreturn [String|Exception|Object|Array] Any one or more of former parameters
|
93
|
+
# @return [Boolean] true
|
94
|
+
def add(severity, *args)
|
95
|
+
severity ||= UNKNOWN
|
96
|
+
return true if level > severity
|
97
|
+
append(severity, block_given? ? yield : args)
|
98
|
+
end
|
99
|
+
|
100
|
+
alias log add
|
101
|
+
|
87
102
|
# @private
|
88
103
|
def chain(_severity, _args, _fields, _hooks)
|
89
104
|
raise NotImplementedError
|
@@ -106,12 +121,5 @@ module Ougai
|
|
106
121
|
end
|
107
122
|
end
|
108
123
|
end
|
109
|
-
|
110
|
-
# @private
|
111
|
-
def log(severity, message, ex, data, block)
|
112
|
-
return true if level > severity
|
113
|
-
args = block ? block.call : [message, ex, data]
|
114
|
-
append(severity, args)
|
115
|
-
end
|
116
124
|
end
|
117
125
|
end
|
data/lib/ougai/version.rb
CHANGED
data/spec/logger_spec.rb
CHANGED
@@ -349,6 +349,14 @@ describe Ougai::Logger do
|
|
349
349
|
it_behaves_like 'log'
|
350
350
|
end
|
351
351
|
|
352
|
+
describe '#unknown' do
|
353
|
+
let(:log_level) { 70 }
|
354
|
+
let(:log_msg) { 'unknown message' }
|
355
|
+
let(:method) { 'unknown' }
|
356
|
+
|
357
|
+
it_behaves_like 'log'
|
358
|
+
end
|
359
|
+
|
352
360
|
describe '#level' do
|
353
361
|
context 'DEBUG' do
|
354
362
|
let(:log_msg) { 'log message' }
|
data/spec/logging_spec.rb
CHANGED
@@ -3,7 +3,14 @@ require 'spec_helper'
|
|
3
3
|
describe Ougai::Logging do
|
4
4
|
subject do
|
5
5
|
m = described_class
|
6
|
-
|
6
|
+
|
7
|
+
Class.new do
|
8
|
+
include m
|
9
|
+
|
10
|
+
def level
|
11
|
+
-1
|
12
|
+
end
|
13
|
+
end.new
|
7
14
|
end
|
8
15
|
|
9
16
|
describe '#weak_merge!' do
|
@@ -30,4 +37,54 @@ describe Ougai::Logging do
|
|
30
37
|
expect{ subject.send(:append, :arg1, :arg2) }.to raise_error(NotImplementedError)
|
31
38
|
end
|
32
39
|
end
|
40
|
+
|
41
|
+
describe '#add' do
|
42
|
+
context 'severity is specified level' do
|
43
|
+
it 'calls append with specified level' do
|
44
|
+
data = double('data')
|
45
|
+
expect(subject).to receive(:append).with(::Logger::Severity::DEBUG, ['debug message', data])
|
46
|
+
subject.add(::Logger::Severity::DEBUG, 'debug message', data)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'severity is nil' do
|
51
|
+
it 'calls append with UNKNOWN level' do
|
52
|
+
expect(subject).to receive(:append).with(::Logger::Severity::UNKNOWN, ['message'])
|
53
|
+
subject.add(nil, 'message')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'block given' do
|
58
|
+
it 'calls append with yielded arguments' do
|
59
|
+
expect(subject).to receive(:append).with(::Logger::Severity::WARN, ['block message'])
|
60
|
+
subject.log(::Logger::Severity::WARN) { ['block message'] }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '#log' do
|
66
|
+
context 'severity is specified' do
|
67
|
+
it 'calls append with specified level' do
|
68
|
+
ex = Exception.new
|
69
|
+
expect(subject).to receive(:append).with(::Logger::Severity::FATAL, ['fatal message', ex])
|
70
|
+
subject.log(::Logger::Severity::FATAL, 'fatal message', ex)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context 'severity is nil' do
|
75
|
+
it 'calls append with UNKNOWN level' do
|
76
|
+
expect(subject).to receive(:append).with(::Logger::Severity::UNKNOWN, ['message'])
|
77
|
+
subject.log(nil, 'message')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'block given' do
|
82
|
+
it 'calls append with yielded arguments' do
|
83
|
+
ex = Exception.new
|
84
|
+
data = double('data')
|
85
|
+
expect(subject).to receive(:append).with(::Logger::Severity::INFO, ['block message', ex, data])
|
86
|
+
subject.log(::Logger::Severity::INFO) { ['block message', ex, data] }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
33
90
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ougai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toshimitsu Takahashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|
@@ -114,25 +114,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.
|
117
|
+
version: 2.5.0
|
118
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
120
|
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|
124
|
-
rubygems_version: 3.
|
124
|
+
rubygems_version: 3.1.2
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: JSON logger compatible with node-bunyan or pino is capable of handling structured
|
128
128
|
data easily.
|
129
129
|
test_files:
|
130
|
-
- spec/formatters/pino_spec.rb
|
131
|
-
- spec/formatters/base_spec.rb
|
132
|
-
- spec/formatters/bunyan_spec.rb
|
133
|
-
- spec/formatters/readable_spec.rb
|
134
130
|
- spec/child_logger_spec.rb
|
135
131
|
- spec/logging_spec.rb
|
136
|
-
- spec/logger_spec.rb
|
137
132
|
- spec/ougai_spec.rb
|
138
133
|
- spec/spec_helper.rb
|
134
|
+
- spec/formatters/pino_spec.rb
|
135
|
+
- spec/formatters/readable_spec.rb
|
136
|
+
- spec/formatters/base_spec.rb
|
137
|
+
- spec/formatters/bunyan_spec.rb
|
138
|
+
- spec/logger_spec.rb
|