ougai 1.8.0-java → 1.9.0-java

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: 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