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