logcraft-sidekiq 1.0.0 → 1.1.0

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