xyeger 0.2.1 → 0.2.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: e6fd8d7c1c20bb9ad7c4dc82ef8520dee72ba414
4
- data.tar.gz: b332c76dca53975e4aac6a237ef0b3c07fcc3b5a
3
+ metadata.gz: de37530451f05be5081c3cd4e4a1c9e90e15c708
4
+ data.tar.gz: 847aa6cda3576580ee4de086055221f4f8078202
5
5
  SHA512:
6
- metadata.gz: 02c6f7aa84b8a72ea2f2dc9fcc140cc86c3f053e1ef803ca8f8a9c0d293184a35b4e7565d595080b8a17c0652cbf3c49e5d01b1e5be91f9cb7b9fa2eca853682
7
- data.tar.gz: f6a41e97e0a35025f52913ab8e13dfa0bc248f591222795bc4b8d4cecf9ddf82f79486c8411a3ce93430d207b6f06057d4a4d64255c2cff7243ebc28c9f35a53
6
+ metadata.gz: bffc160214c0fcf04795ace638ea1cd0ea33e2675c1f4388970ad1285db47179e5cdd37c5f31b207fa2818809ace48289ab00e37cf00b057d53de986cc850c84
7
+ data.tar.gz: b41c880563574eadf1523ba98779dbbbabbb82b864550001b01ec17c7f6bebf6ca0b8337088a3dfa51037154562e666b9738187604310ff8bdb8e4af4de07ccb
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  .rspec
2
2
  .travis.yml
3
+ .rspec_status
@@ -11,7 +11,7 @@ module Xyeger
11
11
  def call(severity, timestamp, context, message)
12
12
  message, context = prepare(message, context)
13
13
 
14
- context = Xyeger.config.filter.filter(context) if Xyeger.config.filter
14
+ context = filter_context(context)
15
15
 
16
16
  result = {
17
17
  hostname: Xyeger.config.hostname,
@@ -57,6 +57,12 @@ module Xyeger
57
57
  result[key] = Paint[value, colors[index]]
58
58
  end
59
59
  end
60
+
61
+ private def filter_context(context)
62
+ return context unless Xyeger.config.filter && context.is_a?(Hash)
63
+
64
+ Xyeger.config.filter.filter(context)
65
+ end
60
66
  end
61
67
  end
62
68
  end
@@ -0,0 +1,27 @@
1
+ module Xyeger
2
+ module Formatters
3
+ class SidekiqJson < Base
4
+ def call(severity, timestamp, context, message)
5
+ context, message = prepare_message(message) unless context
6
+
7
+ super(severity, timestamp, context, message).merge(
8
+ pid: ::Process.pid,
9
+ tid: "TID-#{Thread.current.object_id.to_s(36)}",
10
+ sidekiq_context: sidekiq_context
11
+ ).to_json + "\n"
12
+ end
13
+
14
+ def sidekiq_context
15
+ c = Thread.current[:sidekiq_context]
16
+ c.join(' ') if c&.any?
17
+ end
18
+
19
+ def prepare_message(message)
20
+ json = JSON.parse(message)
21
+ [filter_context(json), 'Sidekiq']
22
+ rescue JSON::ParserError => e
23
+ [nil, message]
24
+ end
25
+ end
26
+ end
27
+ end
@@ -6,5 +6,6 @@ module Xyeger
6
6
  autoload :Json
7
7
  autoload :Values
8
8
  autoload :LogrageRaw
9
+ autoload :SidekiqJson
9
10
  end
10
11
  end
data/lib/xyeger/logger.rb CHANGED
@@ -1,7 +1,18 @@
1
1
  module Xyeger
2
2
  class Logger < ActiveSupport::Logger
3
3
  Logger::Severity.constants.each do |severity|
4
- define_method "#{severity.downcase}" do |message, context={}|
4
+ define_method severity.downcase do |message=nil, context=nil, &block|
5
+ context, message = message, context if message.is_a?(Hash)
6
+
7
+ if block
8
+ result = block.call
9
+
10
+ if result.is_a?(Hash)
11
+ context = result
12
+ else
13
+ message = result
14
+ end
15
+ end
5
16
  add(Logger::Severity.const_get(severity), message, context)
6
17
  end
7
18
  end
@@ -1,3 +1,3 @@
1
1
  module Xyeger
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.2'.freeze
3
3
  end
data/xyeger.gemspec CHANGED
@@ -41,4 +41,5 @@ Gem::Specification.new do |spec|
41
41
  spec.add_development_dependency "bundler", "~> 1.14"
42
42
  spec.add_development_dependency "rake", "~> 10.0"
43
43
  spec.add_development_dependency "rspec", "~> 3.0"
44
+ spec.add_development_dependency 'rubocop'
44
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xyeger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Avramov Vsevolod
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-03 00:00:00.000000000 Z
11
+ date: 2017-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lograge
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '3.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  description: Uniq logger for project
126
140
  email:
127
141
  - vsevolod@cryptopay.me
@@ -144,6 +158,7 @@ files:
144
158
  - lib/xyeger/formatters/json.rb
145
159
  - lib/xyeger/formatters/key_value.rb
146
160
  - lib/xyeger/formatters/lograge_raw.rb
161
+ - lib/xyeger/formatters/sidekiq_json.rb
147
162
  - lib/xyeger/formatters/values.rb
148
163
  - lib/xyeger/logger.rb
149
164
  - lib/xyeger/version.rb