log_formatter 0.4.0 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +30 -8
- data/examples/ruby_text_logger.rb +66 -0
- data/lib/log_formatter/common.rb +0 -20
- data/lib/log_formatter/common_json.rb +21 -0
- data/lib/log_formatter/common_text.rb +25 -0
- data/lib/log_formatter/log4r_json_formatter.rb +2 -0
- data/lib/log_formatter/ruby_json_formatter.rb +3 -1
- data/lib/log_formatter/ruby_text_formatter.rb +31 -0
- data/lib/log_formatter/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8fce49cc4dc2f320cbe2f591453422cf7f0e315
|
4
|
+
data.tar.gz: 966bbb62c55642ee918290df161591db121a6a07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 678d72c6135557fb6e962ce6fb21d1afb18ee398fd57e89047a9f619a0f91389b2a95724e89233456917f36b488beb307bf6afc2e45553d2e1d0f3830332c44f
|
7
|
+
data.tar.gz: d24682ed71aa86ed5b522714f012491bb118e50cfaef2a90f96549b6bcbb60fde92a679c682756bb255a46d87b941df9d6104ef310a2c97378703c97ada3adaf
|
data/README.md
CHANGED
@@ -27,9 +27,9 @@ Or install it yourself as:
|
|
27
27
|
|
28
28
|
## Usage
|
29
29
|
|
30
|
-
|
30
|
+
### Ruby Logger Json Formatter
|
31
31
|
|
32
|
-
|
32
|
+
#### quick start
|
33
33
|
|
34
34
|
```
|
35
35
|
require 'log_formatter'
|
@@ -55,7 +55,7 @@ result:
|
|
55
55
|
}
|
56
56
|
```
|
57
57
|
|
58
|
-
|
58
|
+
#### set app and common ext info
|
59
59
|
|
60
60
|
```
|
61
61
|
logger.formatter = Ruby::JSONFormatter::Base.new('app', {'source': 'examples'})
|
@@ -75,7 +75,7 @@ result:
|
|
75
75
|
}
|
76
76
|
```
|
77
77
|
|
78
|
-
|
78
|
+
#### log with hash
|
79
79
|
|
80
80
|
```
|
81
81
|
logger.formatter = Ruby::JSONFormatter::Base.new('app', {'source': 'examples'})
|
@@ -97,7 +97,7 @@ result:
|
|
97
97
|
}
|
98
98
|
```
|
99
99
|
|
100
|
-
|
100
|
+
#### reset the defaut key
|
101
101
|
|
102
102
|
json formatter will add `log_type`,`log_level`,`log_timestamp`,`log_app` as default key, but you can change them if needed.
|
103
103
|
|
@@ -126,7 +126,7 @@ result:
|
|
126
126
|
}
|
127
127
|
```
|
128
128
|
|
129
|
-
|
129
|
+
#### disable auto generate keys
|
130
130
|
|
131
131
|
json formatter will add `log_type`,`log_level`,`log_timestamp`,`log_app` as default key, but you can remove them if needed by setted to false.
|
132
132
|
|
@@ -155,9 +155,30 @@ result:
|
|
155
155
|
full code to see [examples/ruby_logger](https://github.com/chadlwm/log_formatter/blob/master/examples/ruby_logger.rb)
|
156
156
|
|
157
157
|
|
158
|
-
|
158
|
+
### Ruby Logger Text Formatter
|
159
159
|
|
160
|
-
|
160
|
+
#### Get Start
|
161
|
+
|
162
|
+
```
|
163
|
+
require 'log_formatter'
|
164
|
+
require 'log_formatter/ruby_json_formatter'
|
165
|
+
|
166
|
+
logger = Logger.new(STDOUT)
|
167
|
+
logger.level = Logger::DEBUG
|
168
|
+
|
169
|
+
logger.formatter = Ruby::JSONFormatter::Base.new
|
170
|
+
|
171
|
+
logger.debug("Created logger")
|
172
|
+
```
|
173
|
+
|
174
|
+
other cases just same as ruby json formatter.
|
175
|
+
|
176
|
+
full code to see [examples/ruby_text_logger](https://github.com/chadlwm/log_formatter/blob/master/examples/ruby_text_logger.rb)
|
177
|
+
|
178
|
+
|
179
|
+
### Log4r JSON Formatter
|
180
|
+
|
181
|
+
#### Get Start
|
161
182
|
|
162
183
|
```
|
163
184
|
require 'log4r'
|
@@ -178,6 +199,7 @@ other cases just same as ruby json formatter.
|
|
178
199
|
|
179
200
|
full code to see [examples/log4r_logger](https://github.com/chadlwm/log_formatter/blob/master/examples/log4r_logger.rb)
|
180
201
|
|
202
|
+
|
181
203
|
## Test with Rspec
|
182
204
|
|
183
205
|
```
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'logger'
|
2
|
+
require 'log_formatter'
|
3
|
+
require 'log_formatter/ruby_text_formatter'
|
4
|
+
|
5
|
+
logger = Logger.new(STDOUT)
|
6
|
+
logger.level = Logger::DEBUG
|
7
|
+
|
8
|
+
# plain initialize
|
9
|
+
logger.formatter = Ruby::TextFormatter::Base.new
|
10
|
+
|
11
|
+
logger.debug("Created logger")
|
12
|
+
logger.info("Program started")
|
13
|
+
logger.warn("Nothing to do!")
|
14
|
+
# message:Created logger log_level:DEBUG log_type: log_app: log_timestamp:2017-12-07T17:25:18+08:00
|
15
|
+
# message:Program started log_level:INFO log_type: log_app: log_timestamp:2017-12-07T17:25:18+08:00
|
16
|
+
# message:Nothing to do! log_level:WARN log_type: log_app: log_timestamp:2017-12-07T17:25:18+08:00
|
17
|
+
|
18
|
+
# initialize with app and ext info
|
19
|
+
logger.formatter = Ruby::TextFormatter::Base.new('app', {'source': 'examples'})
|
20
|
+
|
21
|
+
logger.debug("Created logger")
|
22
|
+
logger.info("Program started")
|
23
|
+
logger.warn("Nothing to do!")
|
24
|
+
# source:examples message:Created logger log_level:DEBUG log_type: log_app:app log_timestamp:2017-12-07T17:25:56+08:00
|
25
|
+
# source:examples message:Program started log_level:INFO log_type: log_app:app log_timestamp:2017-12-07T17:25:56+08:00
|
26
|
+
# source:examples message:Nothing to do! log_level:WARN log_type: log_app:app log_timestamp:2017-12-07T17:25:56+08:00
|
27
|
+
|
28
|
+
# log hash
|
29
|
+
logger.formatter = Ruby::TextFormatter::Base.new('app', {'source': 'examples'})
|
30
|
+
|
31
|
+
logger.debug({data: "Created logger"})
|
32
|
+
logger.info({data: "Program started"})
|
33
|
+
logger.warn({data: "Nothing to do!"})
|
34
|
+
# source:examples data:Created logger log_level:DEBUG log_type: log_app:app log_timestamp:2017-12-07T17:25:56+08:00
|
35
|
+
# source:examples data:Program started log_level:INFO log_type: log_app:app log_timestamp:2017-12-07T17:25:56+08:00
|
36
|
+
# source:examples data:Nothing to do! log_level:WARN log_type: log_app:app log_timestamp:2017-12-07T17:25:56+08:00
|
37
|
+
|
38
|
+
# log with custome key instead of default keys
|
39
|
+
logger.formatter = Ruby::TextFormatter::Base.new('app', {'source': 'examples'}) do |config|
|
40
|
+
config[:level] = :cus_level
|
41
|
+
config[:type] = :cus_type
|
42
|
+
config[:app] = :cus_app
|
43
|
+
config[:timestamp] = :cus_timestamp
|
44
|
+
end
|
45
|
+
|
46
|
+
logger.debug({data: "Created logger"})
|
47
|
+
logger.info({data: "Program started"})
|
48
|
+
logger.warn({data: "Nothing to do!"})
|
49
|
+
# source:examples data:Created logger cus_level:DEBUG cus_type: cus_app:app cus_timestamp:2017-12-07T17:25:56+08:00
|
50
|
+
# source:examples data:Program started cus_level:INFO cus_type: cus_app:app cus_timestamp:2017-12-07T17:25:56+08:00
|
51
|
+
# source:examples data:Nothing to do! cus_level:WARN cus_type: cus_app:app cus_timestamp:2017-12-07T17:25:56+08:00
|
52
|
+
|
53
|
+
# log to disable some auto generate keys by setting to fasle
|
54
|
+
logger.formatter = Ruby::TextFormatter::Base.new('app', {'source': 'examples'}) do |config|
|
55
|
+
config[:level] = false
|
56
|
+
config[:type] = false
|
57
|
+
config[:app] = :cus_app
|
58
|
+
config[:timestamp] = false
|
59
|
+
end
|
60
|
+
|
61
|
+
logger.debug({data: "Created logger"})
|
62
|
+
logger.info({data: "Program started"})
|
63
|
+
logger.warn({data: "Nothing to do!"})
|
64
|
+
# source:examples data:Created logger cus_app:app
|
65
|
+
# source:examples data:Program started cus_app:app
|
66
|
+
# source:examples data:Nothing to do! cus_app:ap
|
data/lib/log_formatter/common.rb
CHANGED
@@ -1,24 +1,4 @@
|
|
1
1
|
module LogFormatter::Common
|
2
|
-
def build_event(message, severity, time, progname)
|
3
|
-
data = message
|
4
|
-
if data.is_a?(String) && data.start_with?('{'.freeze)
|
5
|
-
data = (JSON.parse(message) rescue nil) || message
|
6
|
-
end
|
7
|
-
|
8
|
-
event = case data
|
9
|
-
when Hash
|
10
|
-
data
|
11
|
-
else
|
12
|
-
{"message".freeze => msg2str(data)}
|
13
|
-
end
|
14
|
-
|
15
|
-
event[@config[:level].freeze] ||= severity if @config[:level]
|
16
|
-
event[@config[:type].freeze] = progname if @config[:type]
|
17
|
-
event[@config[:app].freeze] = @app if @config[:app]
|
18
|
-
event[@config[:timestamp].freeze] = current_time(time).iso8601 if @config[:timestamp]
|
19
|
-
"#{@ext.merge(event).to_json}\n"
|
20
|
-
end
|
21
|
-
|
22
2
|
def msg2str(msg)
|
23
3
|
case msg
|
24
4
|
when ::String
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module LogFormatter::Common::JSON
|
2
|
+
def build_event(message, severity, time, progname)
|
3
|
+
data = message
|
4
|
+
if data.is_a?(String) && data.start_with?('{'.freeze)
|
5
|
+
data = (JSON.parse(message) rescue nil) || message
|
6
|
+
end
|
7
|
+
|
8
|
+
event = case data
|
9
|
+
when Hash
|
10
|
+
data
|
11
|
+
else
|
12
|
+
{"message".freeze => msg2str(data)}
|
13
|
+
end
|
14
|
+
|
15
|
+
event[@config[:level].freeze] ||= severity if @config[:level]
|
16
|
+
event[@config[:type].freeze] = progname if @config[:type]
|
17
|
+
event[@config[:app].freeze] = @app if @config[:app]
|
18
|
+
event[@config[:timestamp].freeze] = current_time(time).iso8601 if @config[:timestamp]
|
19
|
+
"#{@ext.merge(event).to_json}\n"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module LogFormatter::Common::Text
|
2
|
+
def build_event(message, severity, time, progname)
|
3
|
+
data = message
|
4
|
+
if data.is_a?(String) && data.start_with?('{'.freeze)
|
5
|
+
data = (JSON.parse(message) rescue nil) || message
|
6
|
+
end
|
7
|
+
|
8
|
+
event = case data
|
9
|
+
when Hash
|
10
|
+
data
|
11
|
+
else
|
12
|
+
{"message".freeze => msg2str(data)}
|
13
|
+
end
|
14
|
+
|
15
|
+
event[@config[:level].freeze] ||= severity if @config[:level]
|
16
|
+
event[@config[:type].freeze] = progname if @config[:type]
|
17
|
+
event[@config[:app].freeze] = @app if @config[:app]
|
18
|
+
event[@config[:timestamp].freeze] = current_time(time).iso8601 if @config[:timestamp]
|
19
|
+
log_msg = []
|
20
|
+
@ext.merge(event).each do |k, v|
|
21
|
+
log_msg << "#{k}:#{v}"
|
22
|
+
end
|
23
|
+
log_msg.join("\t")+"\n"
|
24
|
+
end
|
25
|
+
end
|
@@ -2,10 +2,12 @@ require 'log4r'
|
|
2
2
|
require 'json'
|
3
3
|
require 'time'
|
4
4
|
require File.expand_path('../common', __FILE__)
|
5
|
+
require File.expand_path('../common_json', __FILE__)
|
5
6
|
|
6
7
|
module Log4r::JSONFormatter
|
7
8
|
class Base < Log4r::BasicFormatter
|
8
9
|
include LogFormatter::Common
|
10
|
+
include LogFormatter::Common::JSON
|
9
11
|
|
10
12
|
def initialize(app = nil, ext = {})
|
11
13
|
@app = app
|
@@ -2,15 +2,17 @@ require 'logger'
|
|
2
2
|
require 'json'
|
3
3
|
require 'time'
|
4
4
|
require File.expand_path('../common', __FILE__)
|
5
|
+
require File.expand_path('../common_json', __FILE__)
|
5
6
|
|
6
7
|
module Ruby
|
7
8
|
module JSONFormatter
|
8
9
|
class Base < ::Logger::Formatter
|
9
10
|
include LogFormatter::Common
|
11
|
+
include LogFormatter::Common::JSON
|
10
12
|
|
11
13
|
def initialize(app = nil, ext = {})
|
12
14
|
@app = app
|
13
|
-
@ext = ext.is_a?(Hash) ? ext : {}
|
15
|
+
@ext = ext.is_a?(Hash) ? ext : {ext_info: ext.inspect}
|
14
16
|
@config = {
|
15
17
|
level: :log_level,
|
16
18
|
type: :log_type,
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'logger'
|
2
|
+
require 'json'
|
3
|
+
require 'time'
|
4
|
+
require File.expand_path('../common', __FILE__)
|
5
|
+
require File.expand_path('../common_text', __FILE__)
|
6
|
+
|
7
|
+
module Ruby
|
8
|
+
module TextFormatter
|
9
|
+
class Base < ::Logger::Formatter
|
10
|
+
include LogFormatter::Common
|
11
|
+
include LogFormatter::Common::Text
|
12
|
+
|
13
|
+
def initialize(app = nil, ext = {})
|
14
|
+
@app = app
|
15
|
+
@ext = ext.is_a?(Hash) ? ext : {ext_info: ext.inspect}
|
16
|
+
@config = {
|
17
|
+
level: :log_level,
|
18
|
+
type: :log_type,
|
19
|
+
app: :log_app,
|
20
|
+
timestamp: :log_timestamp
|
21
|
+
}
|
22
|
+
|
23
|
+
yield @config if block_given?
|
24
|
+
end
|
25
|
+
|
26
|
+
def call(severity, time, progname, message)
|
27
|
+
@event = build_event(message, severity, time, progname)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log_formatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- chad_lwm
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,10 +86,14 @@ files:
|
|
86
86
|
- bin/setup
|
87
87
|
- examples/log4r_logger.rb
|
88
88
|
- examples/ruby_logger.rb
|
89
|
+
- examples/ruby_text_logger.rb
|
89
90
|
- lib/log_formatter.rb
|
90
91
|
- lib/log_formatter/common.rb
|
92
|
+
- lib/log_formatter/common_json.rb
|
93
|
+
- lib/log_formatter/common_text.rb
|
91
94
|
- lib/log_formatter/log4r_json_formatter.rb
|
92
95
|
- lib/log_formatter/ruby_json_formatter.rb
|
96
|
+
- lib/log_formatter/ruby_text_formatter.rb
|
93
97
|
- lib/log_formatter/version.rb
|
94
98
|
- log_formatter.gemspec
|
95
99
|
homepage: https://github.com/chadlwm/log_formatter
|
@@ -112,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
116
|
version: '0'
|
113
117
|
requirements: []
|
114
118
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.
|
119
|
+
rubygems_version: 2.6.8
|
116
120
|
signing_key:
|
117
121
|
specification_version: 4
|
118
122
|
summary: log formatter
|