logcraft-sidekiq 1.0.0 → 1.1.0

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
  SHA256:
3
- metadata.gz: 2322ef0bc6be2a50e4b4dcf0a66876b53d116a5f14de3dcdf550bbb7bd4da4ad
4
- data.tar.gz: b4369d176d52c6b1fda974f5c2251d8d96facb458a1407c3153b2e0f78b89409
3
+ metadata.gz: 28452045ea7393df36c7954b72551cce39009acd50519f57e8a2987f6f492d8e
4
+ data.tar.gz: 5a9a2e6fd7f3b260bfa2407a546ae10d6bb37924982b7631da5e66be0faea7a7
5
5
  SHA512:
6
- metadata.gz: 9e5c2dd739aab79f00820fb51cc734b358c1308bf4cb8b67716d8d13a1ef1770fb1c44a55afff8de64ed278245fd2c016327927aa3f31a8985bb979c6d399e22
7
- data.tar.gz: 920ba562c1de6d51258e0cf9345da786eaa9cbe77dd5fb7ef431d4242371da897f5f6c6fa14d4dbdc2cfce6812149e4a5d0306c1c121944c5bfe4e8a77f7807a
6
+ metadata.gz: f1c1352ba7f9e634c440cfa31b5950da0842d2b3cf3f5e0e2a906fca85ffb5c92c280bbdfc70d9e59b6aa28fe337c2bbace7e30a5a37e34e1ffeea3a443a3046
7
+ data.tar.gz: 072b697fa207b85bb91e0c2af585a4e6a1f85310147e314842143ef225688f665d16d60f115b22d3fcaddcb86c17e52323ccac6d39d629cc584abca3a40056bd
data/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.1.0] - 2023-08-19
8
+ ### Added
9
+ - Added support for Sidekiq 7.
10
+ - Added support for request-specific context (`CurrentAttributes`).
11
+ See this [blog post](https://www.mikeperham.com/2022/07/29/sidekiq-and-request-specific-context/) for details.
12
+
7
13
  ## [1.0.0] - 2022-08-01
8
14
 
9
15
  No changes, just publishing the release candidate as a final release.
data/Gemfile CHANGED
@@ -6,5 +6,5 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  group :test do
9
- gem 'sidekiq', '~> 6.0'
9
+ gem 'sidekiq', '~> 7.0'
10
10
  end
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/logcraft-sidekiq.svg)](https://badge.fury.io/rb/logcraft-sidekiq)
5
5
 
6
6
  Logcraft::Sidekiq is a structured logging solution for [Sidekiq](https://github.com/mperham/sidekiq), using
7
- the [Logcraft](https://github.com/zormandi/logcraft) gem.
7
+ the [Logcraft](https://github.com/zormandi/logcraft) gem. It supports (and is tested with) Sidekiq 6 and 7.
8
8
 
9
9
  ## Installation
10
10
 
@@ -7,4 +7,5 @@ gemspec path: '..'
7
7
 
8
8
  group :test do
9
9
  gem 'sidekiq', '~> 6.0.0'
10
+ gem 'redis', '~> 4.5.0'
10
11
  end
@@ -7,4 +7,5 @@ gemspec path: '..'
7
7
 
8
8
  group :test do
9
9
  gem 'sidekiq', '~> 6.4.0'
10
+ gem 'redis', '~> 4.5.0'
10
11
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in logcraft-sidekiq.gemspec
6
+ gemspec path: '..'
7
+
8
+ group :test do
9
+ gem 'sidekiq', '~> 7.0.0'
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in logcraft-sidekiq.gemspec
6
+ gemspec path: '..'
7
+
8
+ group :test do
9
+ gem 'sidekiq', '~> 7.0'
10
+ end
@@ -23,6 +23,7 @@ module Logcraft
23
23
  }
24
24
  info_hash[:bid] = job['bid'] if job['bid']
25
25
  info_hash[:tags] = job['tags'] if job['tags']
26
+ info_hash[:cattr] = job['cattr'] if job['cattr']
26
27
  info_hash
27
28
  end
28
29
 
@@ -5,14 +5,18 @@ module Logcraft
5
5
  class JobLogger
6
6
  include Logcraft::LogContextHelper
7
7
 
8
+ def initialize(logger = ::Sidekiq.logger)
9
+ @logger = logger
10
+ end
11
+
8
12
  def call(job_hash, _queue)
9
13
  within_log_context(JobContext.from_job_hash(job_hash)) do
10
14
  begin
11
- logger.info "#{job_hash['class']} started"
15
+ @logger.info "#{job_hash['class']} started"
12
16
  benchmark { yield }
13
- logger.info message: "#{job_hash['class']} finished"
17
+ @logger.info message: "#{job_hash['class']} finished"
14
18
  rescue Exception
15
- logger.info message: "#{job_hash['class']} failed"
19
+ @logger.info message: "#{job_hash['class']} failed"
16
20
  raise
17
21
  end
18
22
  end
@@ -32,10 +36,6 @@ module Logcraft
32
36
  add_to_log_context duration: end_time - start_time,
33
37
  duration_sec: (end_time - start_time) / 1000.0
34
38
  end
35
-
36
- def logger
37
- ::Sidekiq.logger
38
- end
39
39
  end
40
40
  end
41
41
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Logcraft
4
4
  module Sidekiq
5
- VERSION = '1.0.0'
5
+ VERSION = '1.1.0'
6
6
  end
7
7
  end
@@ -14,7 +14,7 @@ module Logcraft
14
14
  autoload :JobLogger, 'logcraft/sidekiq/job_logger'
15
15
 
16
16
  def self.initialize
17
- ::Sidekiq.logger = Logcraft.logger 'Sidekiq'
17
+ initialize_logger
18
18
  ::Sidekiq.configure_server do |config|
19
19
  if config.respond_to? :[]=
20
20
  config[:job_logger] = JobLogger
@@ -23,11 +23,22 @@ module Logcraft
23
23
  end
24
24
  config.error_handlers.delete_if do |handler|
25
25
  (defined?(::Sidekiq::ExceptionHandler) && defined?(::Sidekiq::ExceptionHandler::Logger) && handler.is_a?(::Sidekiq::ExceptionHandler::Logger)) ||
26
- (handler.is_a?(Method) && handler.receiver.name == 'Sidekiq' && handler.name == :default_error_handler)
26
+ (handler.is_a?(Method) && handler.receiver.name == 'Sidekiq' && handler.name == :default_error_handler) ||
27
+ (defined?(::Sidekiq::Config) && defined?(::Sidekiq::Config::ERROR_HANDLER) && (handler == ::Sidekiq::Config::ERROR_HANDLER))
27
28
  end
28
29
  config.error_handlers << ErrorLogger.new
29
30
  config.death_handlers << DeathLogger.new
30
31
  end
31
32
  end
33
+
34
+ def self.initialize_logger
35
+ case ::Sidekiq::VERSION.chr
36
+ when '7'
37
+ ::Sidekiq.configure_client { |config| config.logger = Logcraft.logger 'Sidekiq' }
38
+ ::Sidekiq.configure_server { |config| config.logger = Logcraft.logger 'Sidekiq' }
39
+ when '6'
40
+ ::Sidekiq.logger = Logcraft.logger 'Sidekiq'
41
+ end
42
+ end
32
43
  end
33
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logcraft-sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zoltan Ormandi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-01 00:00:00.000000000 Z
11
+ date: 2023-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logcraft
@@ -28,16 +28,22 @@ dependencies:
28
28
  name: sidekiq
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '6.0'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '8.0'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: '6.0'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '8.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: bundler
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -97,6 +103,8 @@ files:
97
103
  - gemfiles/sidekiq_6.0.gemfile
98
104
  - gemfiles/sidekiq_6.4.gemfile
99
105
  - gemfiles/sidekiq_6.5.gemfile
106
+ - gemfiles/sidekiq_7.0.gemfile
107
+ - gemfiles/sidekiq_7.latest.gemfile
100
108
  - lib/logcraft/sidekiq.rb
101
109
  - lib/logcraft/sidekiq/death_logger.rb
102
110
  - lib/logcraft/sidekiq/error_logger.rb
@@ -104,7 +112,6 @@ files:
104
112
  - lib/logcraft/sidekiq/job_logger.rb
105
113
  - lib/logcraft/sidekiq/railtie.rb
106
114
  - lib/logcraft/sidekiq/version.rb
107
- - logcraft-sidekiq.gemspec
108
115
  - sig/logcraft/sidekiq.rbs
109
116
  homepage: https://github.com/zormandi/logcraft-sidekiq
110
117
  licenses:
@@ -128,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
135
  - !ruby/object:Gem::Version
129
136
  version: '0'
130
137
  requirements: []
131
- rubygems_version: 3.1.6
138
+ rubygems_version: 3.0.3.1
132
139
  signing_key:
133
140
  specification_version: 4
134
141
  summary: A structured logging solution for Sidekiq, using Logcraft.
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lib/logcraft/sidekiq/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "logcraft-sidekiq"
7
- spec.version = Logcraft::Sidekiq::VERSION
8
- spec.authors = ["Zoltan Ormandi"]
9
- spec.email = ["zoltan.ormandi@gmail.com"]
10
-
11
- spec.summary = "A structured logging solution for Sidekiq, using Logcraft."
12
- spec.homepage = "https://github.com/zormandi/logcraft-sidekiq"
13
- spec.license = "MIT"
14
- spec.required_ruby_version = ">= 2.6.0"
15
-
16
- spec.metadata["homepage_uri"] = spec.homepage
17
- spec.metadata["source_code_uri"] = "https://github.com/zormandi/logcraft-sidekiq"
18
- spec.metadata["changelog_uri"] = "https://github.com/zormandi/logcraft-sidekiq/blob/main/CHANGELOG.md"
19
-
20
- # Specify which files should be added to the gem when it is released.
21
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
- `git ls-files -z`.split("\x0").reject do |f|
24
- (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor|Rakefile)})
25
- end
26
- end
27
- spec.bindir = "exe"
28
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
- spec.require_paths = ["lib"]
30
-
31
- spec.add_dependency "logcraft"
32
- spec.add_dependency "sidekiq", "~> 6.0"
33
-
34
- spec.add_development_dependency "bundler", "~> 2.0"
35
- spec.add_development_dependency "rake", ">= 12.0"
36
- spec.add_development_dependency "rspec", "~> 3.0"
37
- end