xyeger 0.2.1 → 0.2.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: 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