log_formatter 0.4.0 → 0.8.2

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
  SHA1:
3
- metadata.gz: 7650cd6a12ef1c0e615e67317578693bfab7f994
4
- data.tar.gz: 2ce529cbb4a652a195238d48ae48e11bbb549c83
3
+ metadata.gz: c8fce49cc4dc2f320cbe2f591453422cf7f0e315
4
+ data.tar.gz: 966bbb62c55642ee918290df161591db121a6a07
5
5
  SHA512:
6
- metadata.gz: bf93c45bce92117e79477600c66ce44cb0248b10291ee00d0273fd516bad8d7d240be5b75285e153162e218e5da99413f4b90e89b69c74f7dea233cc7583d361
7
- data.tar.gz: 7d2e4dac17e60d3e7e5a98e49df0d60e37e970ad2b3bbf2525733a85014e0b6fcabb24a9ef2430a5b1ef7142784e555fb460d9fb64c73357a1050eb99df47f7d
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
- ## Ruby Logger Json Formatter
30
+ ### Ruby Logger Json Formatter
31
31
 
32
- ### quick start
32
+ #### quick start
33
33
 
34
34
  ```
35
35
  require 'log_formatter'
@@ -55,7 +55,7 @@ result:
55
55
  }
56
56
  ```
57
57
 
58
- ### set app and common ext info
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
- ### log with hash
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
- ### reset the defaut key
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
- ### disable auto generate keys
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
- ## Log4r JSON Formatter
158
+ ### Ruby Logger Text Formatter
159
159
 
160
- ### Get Start
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module LogFormatter
2
- VERSION = "0.4.0"
2
+ VERSION = "0.8.2"
3
3
  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.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: 2016-09-01 00:00:00.000000000 Z
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.4.5
119
+ rubygems_version: 2.6.8
116
120
  signing_key:
117
121
  specification_version: 4
118
122
  summary: log formatter