ougai 1.8.0-java → 1.9.0-java

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: 2fa59d7d501c2e7a7d5857069ffcc0f99e84b5d5d9a69b5a70897cc1bf229bb2
4
- data.tar.gz: 68d2de0dd27eb38891b3b15630cde500a054a8e2f6314b7bd901e27053d74d92
3
+ metadata.gz: '070906348af0a90b6f60555ca773d819f143e24df5fd1a7737cc6fd7f9f90743'
4
+ data.tar.gz: 58786804341818ed4505266e756ecdd1bb60d26747473c36064b84329aa9b7e2
5
5
  SHA512:
6
- metadata.gz: 261fda680ffc9d729dae0b5d53f7dac57e2933863620d583e1ea54a59eb1a594dab0a1a54ff107ba08076a357319e9ea306d9e3a31969532812e4b13e4c84d12
7
- data.tar.gz: 345a998ca3bb34b4769f2c1f41b55811448944e714df217c859978b254432be1869d29fcc5d3f9619b025c5d18522ed22262704d002d352ff5452559a453cd52
6
+ metadata.gz: 8243e1692543873342bded8f2188d1adf34180fcb569412964f0dfaacfc4c27ac206165c53c6521c4da27bd93370c65810f8d47f4e1b7db7eb9d747cbb20ee07
7
+ data.tar.gz: '08869aecc437d6c5e2c861e16498c0122064891ac8c14ce17fa1eb6e5420b2b31a3d7210b5d797ba2663873dfc96beebdb3266bd272d12921f35dc536e824ae8'
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,51 +1,52 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ougai (1.8.0-java)
4
+ ougai (1.9.0-java)
5
5
  jrjackson (~> 0.4)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- awesome_print (1.8.0)
11
- diff-lcs (1.3)
12
- docile (1.3.2)
13
- jrjackson (0.4.9-java)
14
- json (2.2.0-java)
15
- rake (10.5.0)
16
- rspec (3.8.0)
17
- rspec-core (~> 3.8.0)
18
- rspec-expectations (~> 3.8.0)
19
- rspec-mocks (~> 3.8.0)
20
- rspec-core (3.8.2)
21
- rspec-support (~> 3.8.0)
22
- rspec-expectations (3.8.4)
10
+ amazing_print (1.2.2)
11
+ diff-lcs (1.4.4)
12
+ docile (1.3.0)
13
+ jrjackson (0.4.13-java)
14
+ json (2.1.0-java)
15
+ rake (13.0.3)
16
+ rspec (3.10.0)
17
+ rspec-core (~> 3.10.0)
18
+ rspec-expectations (~> 3.10.0)
19
+ rspec-mocks (~> 3.10.0)
20
+ rspec-core (3.10.1)
21
+ rspec-support (~> 3.10.0)
22
+ rspec-expectations (3.10.1)
23
23
  diff-lcs (>= 1.2.0, < 2.0)
24
- rspec-support (~> 3.8.0)
25
- rspec-mocks (3.8.1)
24
+ rspec-support (~> 3.10.0)
25
+ rspec-mocks (3.10.1)
26
26
  diff-lcs (>= 1.2.0, < 2.0)
27
- rspec-support (~> 3.8.0)
28
- rspec-support (3.8.2)
29
- simplecov (0.17.0)
27
+ rspec-support (~> 3.10.0)
28
+ rspec-support (3.10.1)
29
+ simplecov (0.16.1)
30
30
  docile (~> 1.1)
31
31
  json (>= 1.8, < 3)
32
32
  simplecov-html (~> 0.10.0)
33
33
  simplecov-html (0.10.2)
34
34
  timecop (0.9.1)
35
- yard (0.9.20)
35
+ yard (0.9.12)
36
36
 
37
37
  PLATFORMS
38
38
  java
39
+ universal-java-15
39
40
 
40
41
  DEPENDENCIES
41
- awesome_print
42
- bundler (>= 1.11.0)
42
+ amazing_print
43
+ bundler (>= 2.1.4)
43
44
  ougai!
44
- rake (~> 10.0)
45
- rspec (~> 3.0)
46
- simplecov
45
+ rake (>= 13.0.1)
46
+ rspec (>= 3.9.0)
47
+ simplecov (< 0.18)
47
48
  timecop
48
49
  yard
49
50
 
50
51
  BUNDLED WITH
51
- 2.0.2
52
+ 2.2.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.7.0-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)
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
@@ -28,7 +28,8 @@ module Ougai
28
28
  load_dependent
29
29
  end
30
30
 
31
- def _call(severity, time, progname, data)
31
+ def _call(severity, time, progname, _data)
32
+ data = _data.dup
32
33
  msg = data.delete(:msg)
33
34
  level = @plain ? severity : colored_level(severity)
34
35
  dt = format_datetime(time)
@@ -86,9 +87,9 @@ module Ougai
86
87
  end
87
88
 
88
89
  def load_dependent
89
- require 'awesome_print'
90
+ require 'amazing_print'
90
91
  rescue LoadError
91
- 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.'
92
93
  raise
93
94
  end
94
95
  end
@@ -7,17 +7,18 @@ 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
19
20
  @with_fields = {}
20
- @formatter = create_formatter
21
+ @formatter = create_formatter if @formatter.nil?
21
22
  end
22
23
 
23
24
  class << self
@@ -38,13 +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
- Logger::Severity.constants.each do |severity|
42
- method_name = severity.downcase.to_sym
43
-
44
- mdl.send(:define_method, method_name) do |*args|
45
- logger.send(method_name, *args)
46
- super(*args)
47
- end
42
+ define_method(:add) do |*args, &block|
43
+ logger.add(*args, &block)
44
+ super(*args, &block)
48
45
  end
49
46
 
50
47
  define_method(:level=) do |level|
@@ -115,7 +112,7 @@ module Ougai
115
112
  hooks.each do |hook|
116
113
  return false if hook.call(data) == false
117
114
  end
118
- add(severity, data)
115
+ super_add(severity, data)
119
116
  end
120
117
 
121
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,13 +121,5 @@ module Ougai
106
121
  end
107
122
  end
108
123
  end
109
-
110
- private
111
-
112
- def log(severity, message, ex, data, block)
113
- return true if level > severity
114
- args = block ? block.call : [message, ex, data]
115
- append(severity, args)
116
- end
117
124
  end
118
125
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ougai
4
- VERSION = '1.8.0'
4
+ VERSION = '1.9.0'
5
5
  end
@@ -51,6 +51,24 @@ describe Ougai::Logger do
51
51
  end
52
52
  end
53
53
 
54
+ describe '.new' do
55
+ context 'if formatter argument is not specified' do
56
+ it 'sets Bunyan to formatter attribute' do
57
+ expect(logger.formatter).to be_an(Ougai::Formatters::Bunyan)
58
+ end
59
+ end
60
+
61
+ if RUBY_VERSION > '2.4'
62
+ context 'if formatter argument is specified' do
63
+ it 'sets it to formatter attribute' do
64
+ a_formatter = Ougai::Formatters::Readable.new
65
+ a_logger = described_class.new(io, formatter: a_formatter)
66
+ expect(a_logger.formatter).to eq a_formatter
67
+ end
68
+ end
69
+ end
70
+ end
71
+
54
72
  shared_examples 'log' do
55
73
  context 'with message' do
56
74
  it 'outputs valid' do
@@ -331,6 +349,14 @@ describe Ougai::Logger do
331
349
  it_behaves_like 'log'
332
350
  end
333
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
+
334
360
  describe '#level' do
335
361
  context 'DEBUG' do
336
362
  let(:log_msg) { 'log message' }
@@ -627,7 +653,7 @@ describe Ougai::Logger do
627
653
  end
628
654
 
629
655
  it 'outputs info log with block on both loggers' do
630
- logger.info(log_msg, foo: 2)
656
+ logger.info { [log_msg, { foo: 2 }] }
631
657
  expect(item).to be_log_message(log_msg, 30)
632
658
  expect(item).to include_data(foo: 2)
633
659
  expect(another_item).to be_log_message(log_msg, 30)
@@ -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.0
4
+ version: 1.9.0
5
5
  platform: java
6
6
  authors:
7
7
  - Toshimitsu Takahashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-20 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
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: '0.4'
19
19
  name: jrjackson
20
- prerelease: false
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
@@ -29,46 +29,46 @@ dependencies:
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.11.0
32
+ version: 2.1.4
33
33
  name: bundler
34
- prerelease: false
35
34
  type: :development
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
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '10.0'
46
+ version: 13.0.1
47
47
  name: rake
48
- prerelease: false
49
48
  type: :development
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
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '3.0'
60
+ version: 3.9.0
61
61
  name: rspec
62
- prerelease: false
63
62
  type: :development
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,15 +114,14 @@ 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
- rubyforge_project:
125
- rubygems_version: 2.7.9
124
+ rubygems_version: 3.0.6
126
125
  signing_key:
127
126
  specification_version: 4
128
127
  summary: JSON logger compatible with node-bunyan or pino is capable of handling structured
@@ -130,10 +129,10 @@ summary: JSON logger compatible with node-bunyan or pino is capable of handling
130
129
  test_files:
131
130
  - spec/child_logger_spec.rb
132
131
  - spec/logging_spec.rb
133
- - spec/logger_spec.rb
134
132
  - spec/ougai_spec.rb
135
133
  - spec/spec_helper.rb
134
+ - spec/logger_spec.rb
136
135
  - spec/formatters/pino_spec.rb
136
+ - spec/formatters/readable_spec.rb
137
137
  - spec/formatters/base_spec.rb
138
138
  - spec/formatters/bunyan_spec.rb
139
- - spec/formatters/readable_spec.rb