minato_logger 0.2.12 → 0.2.14

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: 51344b63f46e1a72e359a1d2bce730996c7d8473cc96bd376a602fb26444c20b
4
- data.tar.gz: c9c2b41076a8b6daa7e6d593492305f8bdb00d0873dda5a9fd96588b656b2f6f
3
+ metadata.gz: 4353d7f52d8e5b812f3dcbcb4d8b858f26aeba0e8bb69f3d8ee3c251997d60f3
4
+ data.tar.gz: 3abd0c444b2595ed337a95a74d2a79b7a1178178af9236fbdc1ccf498dfa0c77
5
5
  SHA512:
6
- metadata.gz: b89b9daf1d56ffaa33c5447bfc7bc6b7a0861d0a14c37e950535d31f22f9f8345455974014eb8df55c8155f29ea502cf9de369252c86197519bc26887e845914
7
- data.tar.gz: 37a12b74516a0b800ba9a3cfccb493e4a8a3f8072937f5a746b87c568ee7073973e69d10ad645b1592819a6f4721ff54d9d822472a8f1453fd058447f89cb639
6
+ metadata.gz: 26d919b4c5e727e0539b6737c5cb5d7379e6ef5500b1d97d9c9de73a411a4914202a64b54076600629f25a7de81f2a304ed9caf503733f01b13c98edc398ef59
7
+ data.tar.gz: 8bdf7d8ccca898cb5eba5e9e4adca003ffa6537d024a580af3fb3a1ef759437a8fc11fba161fd18df7d6c1f21bb09145d795052b939773bc1033b372d8617859
@@ -2,10 +2,11 @@
2
2
 
3
3
  module MinatoLogger
4
4
  class Configuration
5
- attr_reader :middleware
5
+ attr_reader :middleware, :route_blacklist
6
6
 
7
7
  def initialize
8
8
  @middleware = MinatoLogger::Middleware.new
9
+ @route_blacklist = %w[/health/alive /health/ready]
9
10
 
10
11
  yield(self) if block_given?
11
12
  end
@@ -18,7 +18,8 @@ module MinatoLogger
18
18
  end
19
19
  Rails.application.config.middleware.swap(
20
20
  Rails::Rack::Logger,
21
- MinatoLogger::Middlewares::RequestResponseLogger
21
+ MinatoLogger::Middlewares::RequestResponseLogger,
22
+ []
22
23
  )
23
24
  end
24
25
  end
@@ -9,8 +9,8 @@ module MinatoLogger
9
9
  class Logger < ActiveSupport::Logger
10
10
  include ActiveSupport::TaggedLogging
11
11
 
12
- def initialize
13
- super($stdout)
12
+ def initialize(out = nil)
13
+ super(out || $stdout)
14
14
  @formatter = Formatters::FluentBit.new
15
15
  end
16
16
  end
@@ -15,15 +15,32 @@ module MinatoLogger
15
15
  private
16
16
 
17
17
  def call_app(request, env)
18
- log_request(request, env)
18
+ shoud_log_request = shoud_log_request?(request)
19
+ log_request(request, env) if shoud_log_request
19
20
  handle = dispatch_request_event(request)
20
- configure_tags(request)
21
21
  data = process_request(env)
22
- [data[:status], data[:headers], [data[:body]]]
23
- ensure
24
- duration = ((current_time - data[:start_time]) * 1000).round(2)
25
- log_response(request, env, data.merge({ duration: duration }))
22
+ log_response(request, env, data) if shoud_log_request
26
23
  finish_request_instrumentation(handle, env['rails.rack_logger_tag_count'])
24
+ [data[:status], data[:headers], [data[:body]]]
25
+ end
26
+
27
+ def compute_tags(request)
28
+ tags_to_use = @taggers.presence || Rails.application.config.log_tags || []
29
+ tags_to_use.collect do |tag|
30
+ next tag.call(request) if tag.is_a?(Proc)
31
+ next request.send(tag) if tag.is_a?(Symbol)
32
+
33
+ tag
34
+ end
35
+ end
36
+
37
+ def shoud_log_request?(request)
38
+ blacklist = Rails.application.config.minato_logger.route_blacklist || []
39
+ blacklist.none? do |item|
40
+ next item.call(request) if item.is_a?(Proc)
41
+
42
+ request.path == item
43
+ end
27
44
  end
28
45
 
29
46
  def process_request(env)
@@ -34,11 +51,6 @@ module MinatoLogger
34
51
  data
35
52
  end
36
53
 
37
- def configure_tags(request)
38
- @taggers = Rails.application.config.log_tags if @taggers.empty?
39
- logger.push_tags(*compute_tags(request))
40
- end
41
-
42
54
  def dispatch_request_event(request)
43
55
  instrumenter = ActiveSupport::Notifications.instrumenter
44
56
  handle = instrumenter.build_handle('request.action_dispatch', { request: request })
@@ -56,6 +68,7 @@ module MinatoLogger
56
68
  end
57
69
 
58
70
  def log_response(request, env, data)
71
+ data[:duration] = ((current_time - data[:start_time]) * 1000).round(2)
59
72
  payload = build_response_payload(request, env, data)
60
73
  log_level = data[:status] >= 500 ? :error : :info
61
74
  log(payload, log_level)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MinatoLogger
4
- VERSION = '0.2.12'
4
+ VERSION = '0.2.14'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minato_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.12
4
+ version: 0.2.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ferreri
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-02-11 00:00:00.000000000 Z
11
+ date: 2026-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport