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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d04627a9810f76be4d299992b3a2eca66eb66d7d168083962ee3b4a554546d50
4
- data.tar.gz: '089ed84f7e5c8aabd201a82a914dfb0d7d8182b88a3646bb2143060d212544b9'
3
+ metadata.gz: 4b9254ac3650ca12026fbd3d3c6b474a8de478fb81ea82f19fecdff6b62c8b17
4
+ data.tar.gz: 95c71a88355673d0821596503057ad46761c3b508ab7a0b72b806462f8a3af7f
5
5
  SHA512:
6
- metadata.gz: cfab00111705a26b41ccdbb2888c556902a9b1acda511d191b57ed675a2a835b13b13b79cfff4fe439fefd446f2fa00da93884a36ced0cba8a2e52c3d4e1169d
7
- data.tar.gz: 07edc5901a52a5764b98cb8fdbf504913d0b63a32b6d8d631b0cc73cd079f8ff1e492f0fd98e4d177e9e4fae8656bf46d0476abc167515240176bef8e7df2023
6
+ metadata.gz: 9c7cdf6d3ad6cfbaae66438cc40971a5cbd978ad9585c2ed4538cea3530184f53a3e0f2a87c22cfcfc581ecbb596eb7b7d2468edc26e7c1b05d27832d856bbcf
7
+ data.tar.gz: bed8c16d8e851d7b64d52b86084c13f333a0cee873ab4c1bd8670083c700597a587cb6edf39cead61711af747d30b0723d6bf63ac6eadd1c4de0fb7611d8f16c
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ougai (1.8.5)
4
+ ougai (1.9.0)
5
5
  oj (~> 3.10)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -2,7 +2,7 @@ Ougai
2
2
  =====
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/ougai.svg)](https://badge.fury.io/rb/ougai)
5
- [![document](https://img.shields.io/badge/document-1.8.3-green.svg)](http://www.rubydoc.info/gems/ougai/)
5
+ [![document](https://img.shields.io/badge/document-1.9.0-green.svg)](http://www.rubydoc.info/gems/ougai/)
6
6
  [![Build Status](https://travis-ci.org/tilfin/ougai.svg?branch=master)](https://travis-ci.org/tilfin/ougai)
7
7
  [![Code Climate](https://codeclimate.com/github/tilfin/ougai/badges/gpa.svg)](https://codeclimate.com/github/tilfin/ougai)
8
8
  [![Test Coverage](https://codeclimate.com/github/tilfin/ougai/badges/coverage.svg)](https://codeclimate.com/github/tilfin/ougai/coverage)
@@ -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(:log) do |*args|
42
- logger.log(*args)
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
- add(severity, data)
115
+ super_add(severity, data)
115
116
  end
116
117
 
117
118
  def to_item(args)
@@ -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
- log(TRACE, message, ex, data, block)
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
- log(DEBUG, message, ex, data, block)
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
- log(INFO, message, ex, data, block)
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
- log(WARN, message, ex, data, block)
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
- log(ERROR, message, ex, data, block)
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
- log(FATAL, message, ex, data, block)
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
- args = block ? yield : [message, ex, data]
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ougai
4
- VERSION = '1.8.5'
4
+ VERSION = '1.9.0'
5
5
  end
@@ -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' }
@@ -3,7 +3,14 @@ require 'spec_helper'
3
3
  describe Ougai::Logging do
4
4
  subject do
5
5
  m = described_class
6
- Class.new { include m }.new
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.8.5
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: 2020-05-04 00:00:00.000000000 Z
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.4.0
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.0.1
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