semlogr 0.2.0 → 0.2.1

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
- SHA1:
3
- metadata.gz: bd4e69c32518a7128075aabc31c8ec3384dd4c8b
4
- data.tar.gz: 1e264cb0025475bf2774b05d5484756f99585131
2
+ SHA256:
3
+ metadata.gz: 04f7bde6911c8bd520d668999123bee16925a9644534d58ac37c1fd49fd7aa1a
4
+ data.tar.gz: 9f0630873b93a64ab66c945fb2ce989563289c8b84086bbc6dc5f25cda941fe4
5
5
  SHA512:
6
- metadata.gz: e556941e43501f47c519d55eeed10f99317d7ec7ec804e9c537da9d82185a881ca4a0f8309f4856af63639eab3314f6606e142d4d4aeaf5155c1ed8b702a9090
7
- data.tar.gz: 465b051b985524bd0d1c2012df6e0a52c982c0f93fd5c2d0e76cad325f0603ec372912ab8b0940ca552dc34efbec9662b6c1427c712e104731f221afea0b0d8f
6
+ metadata.gz: 22e8460c99bc7e229cb62364097ab079675c7a91bbf19e69fe03e62b0f2f0ef2ba90e24c80063a4c04227eb6fc04fd9e187083b950ed89b922e454b8d30e7149
7
+ data.tar.gz: a9be37b00ccec91882e140390099c064544c955486c726545c86d8494bf2d951dc2d9bb9d7757baef2aafd1640f7283cd857a17e544eb2e13d10c4ee4c9b45fb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ### 0.2.1
4
+
5
+ * Add raw template text to template
6
+ * Add way to fully customize the object that is serialized by the JsonFormatter
7
+ * Upgrade to latest versions of dependencies
8
+ * Allow Oj configuration options to be passed to the JsonFormatter
9
+
3
10
  ### 0.2.0
4
11
 
5
12
  * Introduce simpler logger configuration
data/README.md CHANGED
@@ -38,7 +38,7 @@ More configuration examples can be found inside the samples directory.
38
38
 
39
39
  ## Development
40
40
 
41
- After cloning the repository run `bundle install` to get up and running, to run the specs just run `rake spec`. You can also experiment in an interactive pry console using `bin/console`.
41
+ After cloning the repository run `bundle install` to get up and running, to run the specs just run `bundle exec rake`. You can also experiment in an interactive pry console using `bin/console`.
42
42
 
43
43
  ## Contributing
44
44
 
@@ -15,8 +15,7 @@ module Semlogr
15
15
 
16
16
  def self.get_property(key)
17
17
  LogContext.current
18
- .reverse_each
19
- .each do |properties|
18
+ .reverse_each do |properties|
20
19
  return properties[key] if properties.key?(key)
21
20
  end
22
21
 
@@ -3,19 +3,29 @@ require 'oj'
3
3
  module Semlogr
4
4
  module Formatters
5
5
  class JsonFormatter
6
+ def initialize(opts = {})
7
+ default_opts = {
8
+ mode: :custom,
9
+ time_format: :ruby,
10
+ use_to_json: true
11
+ }
12
+
13
+ @opts = default_opts.merge(opts)
14
+ end
15
+
6
16
  def format(log_event)
7
17
  event = {
8
18
  timestamp: log_event.timestamp.iso8601(3),
9
- severity: log_event.severity,
19
+ severity: log_event.severity.to_s,
20
+ message_template: log_event.template.text,
10
21
  message: log_event.to_s
11
22
  }
12
23
 
13
24
  add_error(event, log_event.error)
14
25
  add_properties(event, log_event.properties)
15
26
 
16
- yield(event) if block_given?
17
-
18
- event_json = Oj.dump(event, mode: :compat, use_as_json: true, use_to_json: true)
27
+ event = yield(event) if block_given?
28
+ event_json = Oj.dump(event, @opts)
19
29
  "#{event_json}\n"
20
30
  end
21
31
 
@@ -30,10 +30,6 @@ module Semlogr
30
30
  @value <=> other.value
31
31
  end
32
32
 
33
- def as_json
34
- to_s
35
- end
36
-
37
33
  def to_s
38
34
  @display_string
39
35
  end
@@ -4,7 +4,7 @@ module Semlogr
4
4
  def self.create(log_event)
5
5
  properties = log_event.properties.merge(
6
6
  timestamp: log_event.timestamp,
7
- severity: log_event.severity
7
+ severity: log_event.severity.to_s
8
8
  )
9
9
 
10
10
  properties[:error] = log_event.error if log_event.error
@@ -78,7 +78,7 @@ module Semlogr
78
78
  end
79
79
 
80
80
  def colorize(output, color)
81
- color = :white unless color
81
+ color ||= :white
82
82
 
83
83
  output << "\e[#{COLOR_CODES[color]}m"
84
84
  yield
@@ -28,7 +28,7 @@ module Semlogr
28
28
  tokens.push(property_token) if property_token
29
29
  end
30
30
 
31
- @template_cache[template] = Template.new(tokens)
31
+ @template_cache[template] = Template.new(template, tokens)
32
32
  end
33
33
 
34
34
  def self.parse_text_token(template, start)
@@ -3,9 +3,10 @@ require 'semlogr/templates/text_token'
3
3
  module Semlogr
4
4
  module Templates
5
5
  class Template
6
- attr_accessor :tokens
6
+ attr_accessor :text, :tokens
7
7
 
8
- def initialize(tokens)
8
+ def initialize(text, tokens)
9
+ @text = text
9
10
  @tokens = tokens
10
11
  end
11
12
 
@@ -15,7 +16,7 @@ module Semlogr
15
16
  end
16
17
  end
17
18
 
18
- EMPTY = Template.new([TextToken::EMPTY])
19
+ EMPTY = Template.new('', [TextToken::EMPTY])
19
20
  end
20
21
  end
21
22
  end
@@ -1,3 +1,3 @@
1
1
  module Semlogr
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.2.1'.freeze
3
3
  end
data/semlogr.gemspec CHANGED
@@ -1,6 +1,4 @@
1
- # coding: utf-8
2
-
3
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
 
6
4
  require 'semlogr/version'
@@ -21,15 +19,15 @@ Gem::Specification.new do |spec|
21
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
20
  spec.require_paths = ['lib']
23
21
 
24
- spec.add_dependency 'lru_redux', '~> 1.1.0'
25
- spec.add_dependency 'oj', '~> 2.18.1'
22
+ spec.add_dependency 'lru_redux', '~> 1.1'
23
+ spec.add_dependency 'oj', '~> 3.5'
26
24
 
27
- spec.add_development_dependency 'bundler', '~> 1.12'
28
- spec.add_development_dependency 'pry', '~> 0.10.3'
29
- spec.add_development_dependency 'rake', '~> 10.0'
30
- spec.add_development_dependency 'rspec', '~> 3.0'
31
- spec.add_development_dependency 'rubocop', '0.49.1'
32
- spec.add_development_dependency 'simplecov', '~>0.15.1'
33
- spec.add_development_dependency 'benchmark-memory', '~>0.1.2'
34
- spec.add_development_dependency 'benchmark-ips', '~>2.7.2'
25
+ spec.add_development_dependency 'benchmark-ips', '~>2.7'
26
+ spec.add_development_dependency 'benchmark-memory', '~>0.1'
27
+ spec.add_development_dependency 'bundler', '~> 1.16'
28
+ spec.add_development_dependency 'pry', '~> 0.11'
29
+ spec.add_development_dependency 'rake', '~> 12.3'
30
+ spec.add_development_dependency 'rspec', '~> 3.7'
31
+ spec.add_development_dependency 'rubocop', '0.53'
32
+ spec.add_development_dependency 'simplecov', '~>0.15'
35
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semlogr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Sedich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-17 00:00:00.000000000 Z
11
+ date: 2018-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lru_redux
@@ -16,140 +16,140 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0
19
+ version: '1.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.0
26
+ version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: oj
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.18.1
33
+ version: '3.5'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.18.1
40
+ version: '3.5'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ name: benchmark-ips
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.12'
47
+ version: '2.7'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.12'
54
+ version: '2.7'
55
55
  - !ruby/object:Gem::Dependency
56
- name: pry
56
+ name: benchmark-memory
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.10.3
61
+ version: '0.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.10.3
68
+ version: '0.1'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
70
+ name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '1.16'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '1.16'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: '0.11'
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
- version: '3.0'
96
+ version: '0.11'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rubocop
98
+ name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '='
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.49.1
103
+ version: '12.3'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '='
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.49.1
110
+ version: '12.3'
111
111
  - !ruby/object:Gem::Dependency
112
- name: simplecov
112
+ name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.15.1
117
+ version: '3.7'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.15.1
124
+ version: '3.7'
125
125
  - !ruby/object:Gem::Dependency
126
- name: benchmark-memory
126
+ name: rubocop
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 0.1.2
131
+ version: '0.53'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 0.1.2
138
+ version: '0.53'
139
139
  - !ruby/object:Gem::Dependency
140
- name: benchmark-ips
140
+ name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 2.7.2
145
+ version: '0.15'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 2.7.2
152
+ version: '0.15'
153
153
  description: A modern semantic logger for Ruby inspired by Serilog.
154
154
  email:
155
155
  - stefan.sedich@gmail.com
@@ -223,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
223
  version: '0'
224
224
  requirements: []
225
225
  rubyforge_project:
226
- rubygems_version: 2.6.13
226
+ rubygems_version: 2.7.3
227
227
  signing_key:
228
228
  specification_version: 4
229
229
  summary: Semantic logging for Ruby