leafy-logger 0.2.1 → 0.3.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 +4 -4
- data/.gitignore +1 -0
- data/README.md +52 -0
- data/lib/leafy/logger/factory.rb +32 -3
- data/lib/leafy/logger/version.rb +1 -1
- data/spec/factory_spec.rb +55 -34
- data/spec/logging.yml +1 -1
- metadata +31 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1edaf8d266b154d77138726bca83c4f088e6ba5c
|
4
|
+
data.tar.gz: 76fc9235ef72622badaa6b960bcf22963a54ac93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b306aa5c14cb9c2f100954926cce76e99870abcb83b0bf510ad414aef34877588779ea6d094f0ac118889e54ec17cfa9e6402ff805cbedfc31b802eb3181c3c
|
7
|
+
data.tar.gz: d2cc30bf437d1d6d75e57b54742833815ef1005045e45ee9b0ef6472c2fe6a096ccdc3fa88c069a5d3e381f65973db9f5f6457fed12e3858d2069733318393b4
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -104,6 +104,58 @@ appender = Leafy::Logger::SyslogAppenderFactory.new do
|
|
104
104
|
end
|
105
105
|
```
|
106
106
|
|
107
|
+
# using configurations
|
108
|
+
|
109
|
+
a yaml file or an options hash can be used to configure the logger factory. once you have a logger factory you can reconfigure it with a yaml-file or options hash at runtime.
|
110
|
+
|
111
|
+
## build logger factory from yaml file
|
112
|
+
|
113
|
+
having a yaml file like (config/logging.yaml)
|
114
|
+
|
115
|
+
```
|
116
|
+
level: ERROR
|
117
|
+
loggers:
|
118
|
+
com.example.app: DEBUG
|
119
|
+
com.example.db: INFO
|
120
|
+
appenders:
|
121
|
+
- type: console
|
122
|
+
threshold: DEBUG
|
123
|
+
target: STDERR
|
124
|
+
- type: file
|
125
|
+
threshold: INFO
|
126
|
+
currentLogFilename: ./logs/example.log
|
127
|
+
archivedLogFilenamePattern: ./logs/example-%d.log.gz
|
128
|
+
archivedFileCount: 12
|
129
|
+
- type: syslog
|
130
|
+
host: 127.0.0.1
|
131
|
+
port: 123
|
132
|
+
facility: KERN
|
133
|
+
```
|
134
|
+
can be used to build ```LoggerFactory``` directly from this yaml file:
|
135
|
+
|
136
|
+
```
|
137
|
+
factory = Leafy::Logger::Factory.new_from_yaml( 'config/logging.yaml' )
|
138
|
+
```
|
139
|
+
|
140
|
+
having the same config as ```Hash``` can be used as well
|
141
|
+
|
142
|
+
```
|
143
|
+
options = YAML.load( File.read( 'config/logging.yaml' ) )
|
144
|
+
factory = Leafy::Logger::Factory.new_from_options( options )
|
145
|
+
```
|
146
|
+
|
147
|
+
## reconfigure logger factory at runtime
|
148
|
+
|
149
|
+
```
|
150
|
+
factory.reconfigure_from_yaml( 'config/logging.yaml' )
|
151
|
+
```
|
152
|
+
|
153
|
+
or
|
154
|
+
|
155
|
+
```
|
156
|
+
factory.reconfigure_from_options( options )
|
157
|
+
```
|
158
|
+
|
107
159
|
## developement
|
108
160
|
|
109
161
|
get all the gems and jars in place
|
data/lib/leafy/logger/factory.rb
CHANGED
@@ -2,10 +2,12 @@ require 'leafy/logger'
|
|
2
2
|
require 'leafy/logger/appender_factories'
|
3
3
|
require 'yaml'
|
4
4
|
require 'stringio'
|
5
|
+
require 'jruby/synchronized'
|
5
6
|
|
6
7
|
module Leafy
|
7
8
|
module Logger
|
8
9
|
class Factory
|
10
|
+
include JRuby::Synchronized
|
9
11
|
|
10
12
|
class HashSourceProvider
|
11
13
|
include Java::IoDropwizardConfiguration::ConfigurationSourceProvider
|
@@ -33,8 +35,8 @@ module Leafy
|
|
33
35
|
Java::IoDropwizardConfiguration::ConfigurationFactory.new( Java::IoDropwizardLogging::LoggingFactory.java_class, validator, objectMapper, "" )
|
34
36
|
end
|
35
37
|
|
36
|
-
def self.
|
37
|
-
new( configurator.build( HashSourceProvider.new(
|
38
|
+
def self.new_from_options( options )
|
39
|
+
new( configurator.build( HashSourceProvider.new( options ), 'dummy') )
|
38
40
|
end
|
39
41
|
|
40
42
|
def self.new_from_yaml( yamlfile )
|
@@ -46,6 +48,22 @@ module Leafy
|
|
46
48
|
@factory = factory || Java::IoDropwizardLogging::LoggingFactory.new
|
47
49
|
end
|
48
50
|
|
51
|
+
def reconfigure_from_options( options )
|
52
|
+
do_reconfigure( self.class.configurator.build( HashSourceProvider.new( options ), 'dummy') )
|
53
|
+
end
|
54
|
+
|
55
|
+
def reconfigure_from_yaml( yamlfile )
|
56
|
+
raise "no such file #{yamlfile}" unless File.exists?( yamlfile )
|
57
|
+
do_reconfigure( self.class.configurator.build( java.io.File.new( yamlfile ) ) )
|
58
|
+
end
|
59
|
+
|
60
|
+
def do_reconfigure( factory )
|
61
|
+
@factory.stop
|
62
|
+
@factory = factory
|
63
|
+
reconfigure
|
64
|
+
end
|
65
|
+
private :do_reconfigure
|
66
|
+
|
49
67
|
def level args = nil
|
50
68
|
if args
|
51
69
|
self.level = args
|
@@ -54,6 +72,12 @@ module Leafy
|
|
54
72
|
end
|
55
73
|
end
|
56
74
|
|
75
|
+
def level_set level
|
76
|
+
l = level.to_s.upcase
|
77
|
+
@factory.level = Java::ChQosLogbackClassic::Level.const_get( l )
|
78
|
+
end
|
79
|
+
private :level_set
|
80
|
+
|
57
81
|
def level= level
|
58
82
|
l = level.to_s.upcase
|
59
83
|
@factory.level = Java::ChQosLogbackClassic::Level.const_get( l )
|
@@ -87,10 +111,15 @@ module Leafy
|
|
87
111
|
self.loggers = m
|
88
112
|
end
|
89
113
|
|
90
|
-
def
|
114
|
+
def loggers_set map
|
91
115
|
m = {}
|
92
116
|
map.each { |k,v| m[k] = Java::ChQosLogbackClassic::Level.const_get( v.to_s.upcase ) }
|
93
117
|
@factory.loggers = m
|
118
|
+
end
|
119
|
+
private :loggers_set
|
120
|
+
|
121
|
+
def loggers= map
|
122
|
+
loggers_set( map )
|
94
123
|
reconfigure
|
95
124
|
end
|
96
125
|
|
data/lib/leafy/logger/version.rb
CHANGED
data/spec/factory_spec.rb
CHANGED
@@ -17,6 +17,19 @@ describe Leafy::Logger::Factory do
|
|
17
17
|
let( :logger1 ) { Leafy::Logger::Factory.get_logger 'my.app' }
|
18
18
|
let( :logger2 ) { Leafy::Logger::Factory.get_logger 'my.db' }
|
19
19
|
|
20
|
+
let( :factory_yaml ) { Leafy::Logger::Factory.new_from_yaml( yaml ) }
|
21
|
+
let( :reconfigured_yaml ) do
|
22
|
+
subject.reconfigure_from_yaml( yaml )
|
23
|
+
subject
|
24
|
+
end
|
25
|
+
|
26
|
+
let( :options ) { YAML.load( File.read( yaml ) ) }
|
27
|
+
let( :factory_options ) { Leafy::Logger::Factory.new_from_options( options ) }
|
28
|
+
let( :reconfigured_options ) do
|
29
|
+
subject.reconfigure_from_options( options )
|
30
|
+
subject
|
31
|
+
end
|
32
|
+
|
20
33
|
before { FileUtils.rm_f log }
|
21
34
|
after { FileUtils.rm_f log }
|
22
35
|
|
@@ -115,41 +128,49 @@ describe Leafy::Logger::Factory do
|
|
115
128
|
expect {Leafy::Logger::Factory.new_from_yaml( yaml + '.gone' ) }.to raise_error( Exception )
|
116
129
|
end
|
117
130
|
|
118
|
-
it '
|
119
|
-
|
120
|
-
expect( f.level ).to eq 'ERROR'
|
121
|
-
expect( f.loggers ).to eq 'com.example.app' => 'DEBUG'
|
122
|
-
expect( f.appenders.size ).to eq 3
|
123
|
-
# console
|
124
|
-
expect( f.appenders[0].threshold ).to eq 'DEBUG'
|
125
|
-
expect( f.appenders[0].target ).to eq 'STDERR'
|
126
|
-
# file
|
127
|
-
expect( f.appenders[1].threshold ).to eq 'INFO'
|
128
|
-
expect( f.appenders[1].current_log_filename ).to eq './logs/example.log'
|
129
|
-
expect( f.appenders[1].archived_log_filename_pattern ).to eq './logs/example-%d.log.gz'
|
130
|
-
expect( f.appenders[1].archived_file_count ).to eq 12
|
131
|
-
# syslog
|
132
|
-
expect( f.appenders[2].host ).to eq 'myhost'
|
133
|
-
expect( f.appenders[2].port ).to eq 123
|
134
|
-
expect( f.appenders[2].facility ).to eq 'KERN'
|
131
|
+
it 'fails reconfigure on missing yaml configuration' do
|
132
|
+
expect {subject.reconfigure_from_yaml( yaml + '.gone' ) }.to raise_error( Exception )
|
135
133
|
end
|
136
134
|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
135
|
+
[ :factory_yaml, :reconfigured_yaml ].each do |method|
|
136
|
+
it "can use a yaml configuration - #{method}" do
|
137
|
+
f = send( method )
|
138
|
+
expect( f.level ).to eq 'ERROR'
|
139
|
+
expect( f.loggers ).to eq 'com.example.app' => 'DEBUG'
|
140
|
+
expect( f.appenders.size ).to eq 3
|
141
|
+
# console
|
142
|
+
expect( f.appenders[0].threshold ).to eq 'DEBUG'
|
143
|
+
expect( f.appenders[0].target ).to eq 'STDERR'
|
144
|
+
# file
|
145
|
+
expect( f.appenders[1].threshold ).to eq 'INFO'
|
146
|
+
expect( f.appenders[1].current_log_filename ).to eq './logs/example.log'
|
147
|
+
expect( f.appenders[1].archived_log_filename_pattern ).to eq './logs/example-%d.log.gz'
|
148
|
+
expect( f.appenders[1].archived_file_count ).to eq 12
|
149
|
+
# syslog
|
150
|
+
expect( f.appenders[2].host ).to eq '127.0.0.1'
|
151
|
+
expect( f.appenders[2].port ).to eq 123
|
152
|
+
expect( f.appenders[2].facility ).to eq 'KERN'
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
[ :factory_options, :reconfigured_options ].each do |method|
|
157
|
+
it 'can use a hash configuration' do
|
158
|
+
f = send( method )
|
159
|
+
expect( f.level ).to eq 'ERROR'
|
160
|
+
expect( f.loggers ).to eq 'com.example.app' => 'DEBUG'
|
161
|
+
expect( f.appenders.size ).to eq 3
|
162
|
+
# console
|
163
|
+
expect( f.appenders[0].threshold ).to eq 'DEBUG'
|
164
|
+
expect( f.appenders[0].target ).to eq 'STDERR'
|
165
|
+
# file
|
166
|
+
expect( f.appenders[1].threshold ).to eq 'INFO'
|
167
|
+
expect( f.appenders[1].current_log_filename ).to eq './logs/example.log'
|
168
|
+
expect( f.appenders[1].archived_log_filename_pattern ).to eq './logs/example-%d.log.gz'
|
169
|
+
expect( f.appenders[1].archived_file_count ).to eq 12
|
170
|
+
# syslog
|
171
|
+
expect( f.appenders[2].host ).to eq '127.0.0.1'
|
172
|
+
expect( f.appenders[2].port ).to eq 123
|
173
|
+
expect( f.appenders[2].facility ).to eq 'KERN'
|
174
|
+
end
|
154
175
|
end
|
155
176
|
end
|
data/spec/logging.yml
CHANGED
metadata
CHANGED
@@ -1,93 +1,94 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leafy-logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- christian meier
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: jar-dependencies
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- - ~>
|
17
|
+
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: 0.1.8
|
19
|
-
name: jar-dependencies
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.1.8
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: leafy-metrics
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- - ~>
|
31
|
+
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 0.2.0
|
33
|
-
name: leafy-metrics
|
34
|
-
prerelease: false
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
|
-
- - ~>
|
45
|
+
- - "~>"
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: 3.1.0
|
47
|
-
name: rspec
|
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
54
|
version: 3.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: yard
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
|
-
- - ~>
|
59
|
+
- - "~>"
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: 0.8.7
|
61
|
-
name: yard
|
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
68
|
version: 0.8.7
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
70
71
|
requirement: !ruby/object:Gem::Requirement
|
71
72
|
requirements:
|
72
|
-
- - ~>
|
73
|
+
- - "~>"
|
73
74
|
- !ruby/object:Gem::Version
|
74
75
|
version: '10.2'
|
75
|
-
name: rake
|
76
|
-
prerelease: false
|
77
76
|
type: :development
|
77
|
+
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '10.2'
|
83
|
-
description: adding logback to leafy with yaml configuration and bridges to log4j
|
83
|
+
description: adding logback to leafy with yaml configuration and bridges to log4j
|
84
|
+
and jul
|
84
85
|
email:
|
85
86
|
- christian.meier@lookout.com
|
86
87
|
executables: []
|
87
88
|
extensions: []
|
88
89
|
extra_rdoc_files: []
|
89
90
|
files:
|
90
|
-
- .gitignore
|
91
|
+
- ".gitignore"
|
91
92
|
- Gemfile
|
92
93
|
- LICENSE
|
93
94
|
- README.md
|
@@ -107,27 +108,26 @@ homepage: https://github.com/lookout/leafy
|
|
107
108
|
licenses:
|
108
109
|
- MIT
|
109
110
|
metadata: {}
|
110
|
-
post_install_message:
|
111
|
+
post_install_message:
|
111
112
|
rdoc_options: []
|
112
113
|
require_paths:
|
113
114
|
- lib
|
114
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
116
|
requirements:
|
116
|
-
- -
|
117
|
+
- - ">="
|
117
118
|
- !ruby/object:Gem::Version
|
118
119
|
version: '0'
|
119
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
121
|
requirements:
|
121
|
-
- -
|
122
|
+
- - ">="
|
122
123
|
- !ruby/object:Gem::Version
|
123
124
|
version: '0'
|
124
125
|
requirements:
|
125
126
|
- jar io.dropwizard:dropwizard-logging, 0.8.0-rc5, [ joda-time:joda-time ]
|
126
127
|
- jar io.dropwizard:dropwizard-configuration, 0.8.0-rc5, [ org.yaml:snakeyaml ]
|
127
|
-
rubyforge_project:
|
128
|
+
rubyforge_project:
|
128
129
|
rubygems_version: 2.4.5
|
129
|
-
signing_key:
|
130
|
+
signing_key:
|
130
131
|
specification_version: 4
|
131
132
|
summary: adding logback to leafy
|
132
133
|
test_files: []
|
133
|
-
has_rdoc:
|