ougai 1.8.2 → 1.9.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b45eb1e81ef91fcc455dca9d94ad63c236d87c17ffaf5ef9e1571a9cfd4fda0
4
- data.tar.gz: 6961172d50ada3b26fa5ddb13bcf031fc90a9a99bd8d44ad7039e6238c7dce87
3
+ metadata.gz: eedebaea46d0f9d0d03d575e527f2499a2d483e839915c8bbe412de268cd26db
4
+ data.tar.gz: 284223f62d6bd3e1a472a076297f66581bbf718fa5bb0e6cd6bef3515a5ef242
5
5
  SHA512:
6
- metadata.gz: 3af65c720a8c8de54cb7fb18fa7708463f290bc4b5d1f9a932c1b66d062f7d00cbe988c7242d26221f17a417fd2c24d75a900dfe3b8f43bbe36abc89ffab928c
7
- data.tar.gz: 5ea383b9efe95c5e3160090430063b1023e80e9103a135a7fa99f3c11805b48c1fca89f558c2b3e5b8ac120b8e6c184c92adb5d88f1406e3787b4c35382d198c
6
+ metadata.gz: cc3c4a339f6fbea07ddfb4e75c96f101295da12d73112efaea997217382557c69ac7f130bd26693ecf880c73c65dc07e369dcc9e9b2105ff588cec018a7812bc
7
+ data.tar.gz: abd28e5dc00a61cac547ac8492f272c2d58c75363b3694b9d4334078549d482c4075b9b3f1463486c54c647e427dd33788185b4d11f75bb6abdc6bf9e8bc2a40
data/Gemfile CHANGED
@@ -4,8 +4,8 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :test do
7
- gem 'awesome_print'
8
- gem 'simplecov', require: false
7
+ gem 'amazing_print'
8
+ gem 'simplecov', '< 0.18', require: false
9
9
  gem 'timecop'
10
10
  gem 'yard'
11
11
  end
@@ -1,53 +1,53 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ougai (1.8.2)
5
- oj (~> 3.4)
4
+ ougai (1.9.1)
5
+ oj (~> 3.10)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- awesome_print (1.8.0)
10
+ amazing_print (1.0.0)
11
11
  diff-lcs (1.3)
12
12
  docile (1.3.2)
13
- json (2.2.0)
14
- json (2.2.0-java)
15
- oj (3.9.0)
16
- rake (10.5.0)
17
- rspec (3.8.0)
18
- rspec-core (~> 3.8.0)
19
- rspec-expectations (~> 3.8.0)
20
- rspec-mocks (~> 3.8.0)
21
- rspec-core (3.8.2)
22
- rspec-support (~> 3.8.0)
23
- rspec-expectations (3.8.4)
13
+ json (2.3.0)
14
+ json (2.3.0-java)
15
+ oj (3.10.6)
16
+ rake (13.0.1)
17
+ rspec (3.9.0)
18
+ rspec-core (~> 3.9.0)
19
+ rspec-expectations (~> 3.9.0)
20
+ rspec-mocks (~> 3.9.0)
21
+ rspec-core (3.9.1)
22
+ rspec-support (~> 3.9.1)
23
+ rspec-expectations (3.9.0)
24
24
  diff-lcs (>= 1.2.0, < 2.0)
25
- rspec-support (~> 3.8.0)
26
- rspec-mocks (3.8.1)
25
+ rspec-support (~> 3.9.0)
26
+ rspec-mocks (3.9.1)
27
27
  diff-lcs (>= 1.2.0, < 2.0)
28
- rspec-support (~> 3.8.0)
29
- rspec-support (3.8.2)
30
- simplecov (0.17.0)
28
+ rspec-support (~> 3.9.0)
29
+ rspec-support (3.9.2)
30
+ simplecov (0.17.1)
31
31
  docile (~> 1.1)
32
32
  json (>= 1.8, < 3)
33
33
  simplecov-html (~> 0.10.0)
34
34
  simplecov-html (0.10.2)
35
35
  timecop (0.9.1)
36
- yard (0.9.20)
36
+ yard (0.9.24)
37
37
 
38
38
  PLATFORMS
39
39
  java
40
40
  ruby
41
41
 
42
42
  DEPENDENCIES
43
- awesome_print
44
- bundler (>= 1.11.0)
43
+ amazing_print
44
+ bundler (>= 2.1.4)
45
45
  ougai!
46
- rake (~> 10.0)
47
- rspec (~> 3.0)
48
- simplecov
46
+ rake (>= 13.0.1)
47
+ rspec (>= 3.9.0)
48
+ simplecov (< 0.18)
49
49
  timecop
50
50
  yard
51
51
 
52
52
  BUNDLED WITH
53
- 2.0.2
53
+ 2.1.4
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016-2019 Toshimitsu Takahashi
3
+ Copyright (c) 2016-2020 Toshimitsu Takahashi
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -2,14 +2,14 @@ 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.2-green.svg)](http://www.rubydoc.info/gems/ougai/)
5
+ [![document](https://img.shields.io/badge/document-1.9.1-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)
9
9
 
10
10
  A structured logging system is capable of handling a message, structured data or an exception easily.
11
11
  It has JSON formatters compatible with [Bunyan](https://github.com/trentm/node-bunyan) or [pino](https://github.com/pinojs/pino) for Node.js and
12
- human readable formatter with [Awesome Print](https://github.com/awesome-print/awesome_print) for console.
12
+ human readable formatter with [Amazing Print](https://github.com/amazing-print/amazing_print) for console.
13
13
 
14
14
  ## Installation
15
15
 
@@ -335,10 +335,10 @@ If you use *Ougai::Formatters::Pino*, you can use command [pino](https://github.
335
335
 
336
336
  ## Use human Readable formatter for console
337
337
 
338
- Add awesome_print to Gemfile and `bundle`
338
+ Add amazing_print to Gemfile and `bundle`
339
339
 
340
340
  ```ruby
341
- gem 'awesome_print'
341
+ gem 'amazing_print'
342
342
  ```
343
343
 
344
344
  Set *Ougai::Formatters::Readable* instance to `formatter` accessor
@@ -4,7 +4,7 @@ require 'ougai/formatters/base'
4
4
 
5
5
  module Ougai
6
6
  module Formatters
7
- # A human readble formatter with awesome_print
7
+ # A human readble formatter with amazing_print
8
8
  # @attr [Boolean] plain Whether log should be plain not colorized.
9
9
  # @attr [Array<String, Symbol>] excluded_fields The fields excluded from all logs
10
10
  class Readable < Base
@@ -87,9 +87,9 @@ module Ougai
87
87
  end
88
88
 
89
89
  def load_dependent
90
- require 'awesome_print'
90
+ require 'amazing_print'
91
91
  rescue LoadError
92
- puts 'You must install the awesome_print gem to use this output.'
92
+ puts 'You must install the amazing_print gem to use this output.'
93
93
  raise
94
94
  end
95
95
  end
@@ -7,12 +7,13 @@ 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
13
14
 
14
- def initialize(*args)
15
- super(*args)
15
+ def initialize(*, **)
16
+ super
16
17
  @before_log = nil
17
18
  @default_message = 'No message'
18
19
  @exc_key = :err
@@ -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(:_log) do |*args, &block|
43
+ logger._log(*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
+ _log(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
+ _log(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
+ _log(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
+ _log(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
+ _log(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
+ _log(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
+ _log(UNKNOWN, message, ex, data, &block)
79
78
  end
80
79
 
81
80
  # Whether the current severity level allows for logging TRACE.
@@ -84,6 +83,26 @@ 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, message = nil, ex = nil, data = nil, &block)
95
+ _log(severity, message, ex, data, &block)
96
+ end
97
+
98
+ alias log add
99
+
100
+ def _log(severity, *args)
101
+ severity ||= UNKNOWN
102
+ return true if level > severity
103
+ append(severity, block_given? ? yield : args)
104
+ end
105
+
87
106
  # @private
88
107
  def chain(_severity, _args, _fields, _hooks)
89
108
  raise NotImplementedError
@@ -106,12 +125,5 @@ module Ougai
106
125
  end
107
126
  end
108
127
  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
128
  end
117
129
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ougai
4
- VERSION = '1.8.2'
4
+ VERSION = '1.9.1'
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,62 @@ 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, nil])
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', nil, nil])
53
+ subject.add(nil, 'message')
54
+ end
55
+ end
56
+
57
+ context 'with block that yields message' do
58
+ it 'calls append with yielded message' do
59
+ expect(subject).to receive(:append).with(::Logger::Severity::WARN, 'block message')
60
+ subject.add(::Logger::Severity::WARN) { 'block message' }
61
+ end
62
+ end
63
+
64
+ context 'with block that yields array' do
65
+ it 'calls append with yielded array' do
66
+ data = double('data')
67
+ expect(subject).to receive(:append).with(::Logger::Severity::WARN, ['block message', data])
68
+ subject.add(::Logger::Severity::WARN) { ['block message', data] }
69
+ end
70
+ end
71
+ end
72
+
73
+ describe '#log' do
74
+ context 'severity is specified' do
75
+ it 'calls append with specified level' do
76
+ ex = Exception.new
77
+ expect(subject).to receive(:append).with(::Logger::Severity::FATAL, ['fatal message', ex, nil])
78
+ subject.log(::Logger::Severity::FATAL, 'fatal message', ex)
79
+ end
80
+ end
81
+
82
+ context 'severity is nil' do
83
+ it 'calls append with UNKNOWN level' do
84
+ expect(subject).to receive(:append).with(::Logger::Severity::UNKNOWN, ['message', nil, nil])
85
+ subject.log(nil, 'message')
86
+ end
87
+ end
88
+
89
+ context 'with block' do
90
+ it 'calls append with yielded arguments' do
91
+ ex = Exception.new
92
+ data = double('data')
93
+ expect(subject).to receive(:append).with(::Logger::Severity::INFO, ['block message', ex, data])
94
+ subject.log(::Logger::Severity::INFO) { ['block message', ex, data] }
95
+ end
96
+ end
97
+ end
33
98
  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.2
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toshimitsu Takahashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-29 00:00:00.000000000 Z
11
+ date: 2021-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
@@ -16,59 +16,59 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.4'
19
+ version: '3.10'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.4'
26
+ version: '3.10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.11.0
33
+ version: 2.1.4
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 1.11.0
40
+ version: 2.1.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: 13.0.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: 13.0.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: 3.9.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: 3.9.0
69
69
  description: |2
70
70
  A structured logging system is capable of handling a message, custom data or an exception easily.
71
- It has JSON formatters compatible with Bunyan or pino for Node.js and human readable formatter with Awesome Print for console.
71
+ It has JSON formatters compatible with Bunyan or pino for Node.js and human readable formatter with Amazing Print for console.
72
72
  email:
73
73
  - toshi@tilfin.com
74
74
  executables: []
@@ -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.3.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