libis-tools 0.9.21 → 0.9.22

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
  SHA1:
3
- metadata.gz: dc18f91c7fdaf317168eb91966d598fff6fd0252
4
- data.tar.gz: 43d8f7c0f51f7e5e32b28680f53bb6f6dbb17658
3
+ metadata.gz: 2fa0a518d621cbae23b3f00c8653a6668a3c8ec6
4
+ data.tar.gz: feb47f3885d7d24105b430fe0b3dbb41113dc5bb
5
5
  SHA512:
6
- metadata.gz: db2e5d1f92574eaefab41674b23aac4aa116b01206eb5eeb1304482de6dba8213a00b3c3ccfd79a83be1523b7d947d07112dd445ddadfeb781176f0fefacf65d
7
- data.tar.gz: 5983fc775104c2d592fdeacdec3c86489215275ab9f138bf72211696e049e21f093e2f25e197a722d854962753652c469972e22a4dd123af58b9dd951ce8b782
6
+ metadata.gz: 6b21a0123262220156aed3a31cdcd1a5dd9314fb560a6953b1d37c331e6d8ca5bc81092eb608eab1fd784fe5b34ab541ac668928446a10536f85a1297d3ee85e
7
+ data.tar.gz: 61eb864a41ce4685515fc68fb1289e2c4ef1e2218f060bdfc91e2550c42342ad832a56b4f64627ed90bc40f1a2058518a73d264f51068b57e3e78f07ec6da0da
@@ -110,11 +110,13 @@ module Libis
110
110
  ::Logging::Layouts::Pattern.new(DEFAULT_LOG_LAYOUT_PARAMETERS)
111
111
  end
112
112
 
113
- def logger(name = nil)
113
+ def logger(name = nil, appenders = nil)
114
114
  sync do
115
115
  name ||= :root
116
116
  logger = ::Logging.logger[name]
117
- logger.appenders = ::Logging.appenders.stdout(DEFAULT_LOG_LAYOUT_PARAMETERS) if logger.appenders.empty?
117
+ if logger.appenders.empty?
118
+ logger.appenders = appenders || ::Logging.appenders.stdout(layout: get_log_formatter)
119
+ end
118
120
  logger
119
121
  end
120
122
  end
@@ -136,7 +138,7 @@ module Libis
136
138
  ::Logging::init
137
139
  # noinspection RubyResolve
138
140
  DEFAULT_LOG_LAYOUT_PARAMETERS = {
139
- pattern: "%.1l, [%d #%p.%t] %#{::Logging::MAX_LEVEL_LENGTH}l : %m\n",
141
+ pattern: "%.1l, [%d #%p.%t] %5l%X{Application}%X{Subject} : %m\n",
140
142
  date_pattern: '%Y-%m-%dT%H:%M:%S.%L'
141
143
  }
142
144
 
@@ -47,6 +47,15 @@ module Libis
47
47
  Config.logger
48
48
  end
49
49
 
50
+ def set_application(name = nil)
51
+ name ||= self.class.name
52
+ ::Logging.mdc['Application'] = name.blank? ? '' : " -- #{name}"
53
+ end
54
+
55
+ def set_subject(name = nil)
56
+ ::Logging.mdc['Subject'] = name.blank? ? '' : " - #{name}"
57
+ end
58
+
50
59
  # Send a debug message to the logger.
51
60
  #
52
61
  # If the optional extra parameters are supplied, the first parameter will be interpreted as a format
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Tools
3
- VERSION = '0.9.21'
3
+ VERSION = '0.9.22'
4
4
  end
5
5
  end
data/libis-tools.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'rspec', '~> 3.1'
33
33
  spec.add_development_dependency 'simplecov', '~> 0.9'
34
34
  spec.add_development_dependency 'equivalent-xml', '~> 0.5'
35
- spec.add_development_dependency 'awesome_print'
35
+ spec.add_development_dependency 'awesome_print', '~> 0'
36
36
 
37
37
  spec.add_runtime_dependency 'backports', '~> 3.6'
38
38
  spec.add_runtime_dependency 'nokogiri', '~> 1.6'
data/spec/logger_spec.rb CHANGED
@@ -9,82 +9,157 @@ describe 'Logger' do
9
9
  include ::Libis::Tools::Logger
10
10
  end
11
11
 
12
- before(:context) do
13
- end
14
-
15
- before(:example) do
16
- appender = ::Logging::Appenders.string_io('StringIO', layout: ::Libis::Tools::Config.get_log_formatter)
17
- ::Libis::Tools::Config.logger.add_appenders(appender)
18
- @logoutput = appender.sio
12
+ before :each do
13
+ ::Libis::Tools::Config.logger.appenders =
14
+ ::Logging::Appenders.string_io('StringIO', layout: ::Libis::Tools::Config.get_log_formatter)
19
15
  ::Libis::Tools::Config.logger.level = :all
20
- @test_logger = TestLogger.new
21
- end
22
-
23
- let(:timestamp_regex) { '\[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3} #\d+\.\d+\]'}
24
-
25
- it 'should log debug output' do
26
- @test_logger.debug 'Debug message'
27
- puts "LOG OUTPUT: #{@logoutput.string}"
28
- output = @logoutput.string.lines.map(&:chomp)
29
- expect(output.size).to eq 1
30
- expect(output.first).to match /^D, #{timestamp_regex} DEBUG : Debug message$/
31
16
  end
32
17
 
33
- it 'should log info output' do
34
- @test_logger.info 'Info message'
35
- output = @logoutput.string.lines.map(&:chomp)
36
- expect(output.size).to eq 1
37
- expect(output.first).to match /^I, #{timestamp_regex} INFO : Info message$/
38
- end
18
+ let(:test_logger) { TestLogger.new }
19
+ let(:logoutput) { ::Libis::Tools::Config.logger.appenders.last.sio }
20
+
21
+ let(:timestamp_regex) { '\[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3} #\d+\.\d+\]' }
22
+
23
+ context 'with default log configuration' do
24
+
25
+ it 'should log debug output' do
26
+ test_logger.debug 'Debug message'
27
+ output = logoutput.string.lines.map(&:chomp)
28
+ expect(output.size).to eq 1
29
+ expect(output.last).to match /^D, #{timestamp_regex} DEBUG : Debug message$/
30
+ end
31
+
32
+ it 'should log info output' do
33
+ test_logger.info 'Info message'
34
+ output = logoutput.string.lines.map(&:chomp)
35
+ expect(output.size).to eq 1
36
+ expect(output.last).to match /^I, #{timestamp_regex} INFO : Info message$/
37
+ end
38
+
39
+ it 'should log warning output' do
40
+ test_logger.warn 'Warning message'
41
+ output = logoutput.string.lines.map(&:chomp)
42
+ expect(output.size).to eq 1
43
+ expect(output.last).to match /^W, #{timestamp_regex} WARN : Warning message$/
44
+ end
45
+
46
+ it 'should log error output' do
47
+ test_logger.error 'Error message'
48
+ output = logoutput.string.lines.map(&:chomp)
49
+ expect(output.size).to eq 1
50
+ expect(output.last).to match /^E, #{timestamp_regex} ERROR : Error message$/
51
+ end
52
+
53
+ it 'should log fatal output' do
54
+ test_logger.fatal 'Fatal message'
55
+ output = logoutput.string.lines.map(&:chomp)
56
+ expect(output.size).to eq 1
57
+ expect(output.last).to match /^F, #{timestamp_regex} FATAL : Fatal message$/
58
+ end
59
+
60
+ it 'should be quiet when asked to' do
61
+ ::Libis::Tools::Config.logger.level = :error
62
+
63
+ test_logger.debug 'Debug message'
64
+ output = logoutput.string.lines.map(&:chomp)
65
+ # noinspection RubyResolve
66
+ expect(output).to be_empty
67
+
68
+ test_logger.info 'Info message'
69
+ output = logoutput.string.lines.map(&:chomp)
70
+ # noinspection RubyResolve
71
+ expect(output).to be_empty
72
+
73
+ test_logger.warn 'Warn message'
74
+ output = logoutput.string.lines.map(&:chomp)
75
+ # noinspection RubyResolve
76
+ expect(output).to be_empty
77
+
78
+ test_logger.error 'Error message'
79
+ output = logoutput.string.lines.map(&:chomp)
80
+ # noinspection RubyResolve
81
+ expect(output).not_to be_empty
82
+
83
+ test_logger.fatal 'Fatal message'
84
+ output = logoutput.string.lines.map(&:chomp)
85
+ # noinspection RubyResolve
86
+ expect(output).not_to be_empty
87
+ end
39
88
 
40
- it 'should log warning output' do
41
- @test_logger.warn 'Warning message'
42
- output = @logoutput.string.lines.map(&:chomp)
43
- expect(output.size).to eq 1
44
- expect(output.first).to match /^W, #{timestamp_regex} WARN : Warning message$/
45
89
  end
46
90
 
47
- it 'should log error output' do
48
- @test_logger.error 'Error message'
49
- output = @logoutput.string.lines.map(&:chomp)
50
- expect(output.size).to eq 1
51
- expect(output.first).to match /^E, #{timestamp_regex} ERROR : Error message$/
52
- end
91
+ context 'with application configuration' do
92
+
93
+ it 'should print default application name' do
94
+ test_logger.set_application
95
+ test_logger.info 'Info message'
96
+ output = logoutput.string.lines.map(&:chomp)
97
+ expect(output.size).to eq 1
98
+ expect(output.last).to match /^I, #{timestamp_regex} INFO -- TestLogger : Info message$/
99
+ end
100
+
101
+ it 'should print custom application name' do
102
+ test_logger.set_application 'TestApplication'
103
+ test_logger.info 'Info message'
104
+ output = logoutput.string.lines.map(&:chomp)
105
+ expect(output.size).to eq 1
106
+ expect(output.last).to match /^I, #{timestamp_regex} INFO -- TestApplication : Info message$/
107
+ end
108
+
109
+ it 'should allow to turn of application name' do
110
+ test_logger.set_application 'TestApplication'
111
+ test_logger.info 'Info message'
112
+ output = logoutput.string.lines.map(&:chomp)
113
+ expect(output.size).to eq 1
114
+ expect(output.last).to match /^I, #{timestamp_regex} INFO -- TestApplication : Info message$/
115
+ # -- revert to default
116
+ test_logger.set_application
117
+ test_logger.info 'Info message'
118
+ output = logoutput.string.lines.map(&:chomp)
119
+ expect(output.size).to eq 2
120
+ expect(output.last).to match /^I, #{timestamp_regex} INFO -- TestLogger : Info message$/
121
+ # -- turn off
122
+ test_logger.set_application ''
123
+ test_logger.info 'Info message'
124
+ output = logoutput.string.lines.map(&:chomp)
125
+ expect(output.size).to eq 3
126
+ expect(output.last).to match /^I, #{timestamp_regex} INFO : Info message$/
127
+ end
53
128
 
54
- it 'should log fatal output' do
55
- @test_logger.fatal 'Fatal message'
56
- output = @logoutput.string.lines.map(&:chomp)
57
- expect(output.size).to eq 1
58
- expect(output.first).to match /^F, #{timestamp_regex} FATAL : Fatal message$/
59
129
  end
60
130
 
61
- it 'should be quiet when asked to' do
62
- ::Libis::Tools::Config.logger.level = :error
63
-
64
- @test_logger.debug 'Debug message'
65
- output = @logoutput.string.lines.map(&:chomp)
66
- # noinspection RubyResolve
67
- expect(output).to be_empty
68
-
69
- @test_logger.info 'Info message'
70
- output = @logoutput.string.lines.map(&:chomp)
71
- # noinspection RubyResolve
72
- expect(output).to be_empty
73
-
74
- @test_logger.warn 'Warn message'
75
- output = @logoutput.string.lines.map(&:chomp)
76
- # noinspection RubyResolve
77
- expect(output).to be_empty
78
-
79
- @test_logger.error 'Error message'
80
- output = @logoutput.string.lines.map(&:chomp)
81
- # noinspection RubyResolve
82
- expect(output).not_to be_empty
83
-
84
- @test_logger.fatal 'Fatal message'
85
- output = @logoutput.string.lines.map(&:chomp)
86
- # noinspection RubyResolve
87
- expect(output).not_to be_empty
131
+ context 'with subject configuration' do
132
+
133
+ it 'should print no subject by default' do
134
+ test_logger.set_subject
135
+ test_logger.info 'Info message'
136
+ output = logoutput.string.lines.map(&:chomp)
137
+ expect(output.size).to eq 1
138
+ expect(output.last).to match /^I, #{timestamp_regex} INFO : Info message$/
139
+ end
140
+
141
+ it 'should print custom subject name' do
142
+ test_logger.set_subject 'TestSubject'
143
+ test_logger.info 'Info message'
144
+ output = logoutput.string.lines.map(&:chomp)
145
+ expect(output.size).to eq 1
146
+ expect(output.last).to match /^I, #{timestamp_regex} INFO - TestSubject : Info message$/
147
+ end
148
+
149
+ it 'should allow to turn off subject name' do
150
+ test_logger.set_subject 'TestSubject'
151
+ test_logger.info 'Info message'
152
+ output = logoutput.string.lines.map(&:chomp)
153
+ expect(output.size).to eq 1
154
+ expect(output.last).to match /^I, #{timestamp_regex} INFO - TestSubject : Info message$/
155
+ # -- turn off
156
+ test_logger.set_subject
157
+ test_logger.info 'Info message'
158
+ output = logoutput.string.lines.map(&:chomp)
159
+ expect(output.size).to eq 2
160
+ expect(output.last).to match /^I, #{timestamp_regex} INFO : Info message$/
161
+ end
162
+
88
163
  end
89
164
 
90
- end
165
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libis-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.21
4
+ version: 0.9.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kris Dekeyser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-04 00:00:00.000000000 Z
11
+ date: 2016-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,14 +84,14 @@ dependencies:
84
84
  name: awesome_print
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
@@ -246,7 +246,6 @@ files:
246
246
  - ".rspec"
247
247
  - ".travis.yml"
248
248
  - Gemfile
249
- - LICENSE.txt
250
249
  - README.md
251
250
  - Rakefile
252
251
  - lib/libis-tools.rb
data/LICENSE.txt DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2014 LIBIS
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.