log_bench 0.2.0 → 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 +4 -4
- data/README.md +19 -15
- data/lib/log_bench/json_formatter.rb +12 -2
- data/lib/log_bench/railtie.rb +9 -4
- data/lib/log_bench/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ef3280c4cfefbc7369143aeebffe5c90d7106ec070a4ee85c96e731b28c7c4d
|
4
|
+
data.tar.gz: 8d205ecadd2efa5b5cfaf1726f2a3130d6b31584f55090e16a08aadd53d06f19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 894a557fdba0202ed8095b5fff26d07eb38635aec33833ec294f7ba2da6e9332eb61300569b6ac27f1131f468a7ddb0c154f0a4021e25b67eeeb52b724f851bd
|
7
|
+
data.tar.gz: 2b00b93a9f246680d7d8f9c079b0af3291280197d83c14cd4f13b350dff5c598d27889233e6482baf118fb1ea30cb26037265fe9bbff30e59e3cd0327ab0c47b
|
data/README.md
CHANGED
@@ -52,18 +52,20 @@ To customize LogBench behavior, create `config/initializers/log_bench.rb`:
|
|
52
52
|
|
53
53
|
```ruby
|
54
54
|
# config/initializers/log_bench.rb
|
55
|
-
LogBench
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
55
|
+
if defined?(LogBench)
|
56
|
+
LogBench.setup do |config|
|
57
|
+
# Enable/disable LogBench (default: true in development, false elsewhere)
|
58
|
+
config.enabled = Rails.env.development? # or any other condition
|
59
|
+
|
60
|
+
# Disable automatic lograge configuration (if you want to configure lograge manually)
|
61
|
+
# config.configure_lograge_automatically = false # (default: true)
|
62
|
+
|
63
|
+
# Customize initialization message
|
64
|
+
# config.show_init_message = :min # :full, :min, or :none (default: :full)
|
65
|
+
|
66
|
+
# Specify which controllers to inject request_id tracking
|
67
|
+
# config.base_controller_classes = %w[CustomBaseController] # (default: %w[ApplicationController, ActionController::Base])
|
68
|
+
end
|
67
69
|
end
|
68
70
|
```
|
69
71
|
|
@@ -73,9 +75,11 @@ If you already have lograge configured or want to manage it manually:
|
|
73
75
|
|
74
76
|
```ruby
|
75
77
|
# config/initializers/log_bench.rb
|
76
|
-
LogBench
|
77
|
-
|
78
|
-
|
78
|
+
if defined?(LogBench)
|
79
|
+
LogBench.setup do |config|
|
80
|
+
# ... other config ...
|
81
|
+
config.configure_lograge_automatically = false # Don't touch my lograge config!
|
82
|
+
end
|
79
83
|
end
|
80
84
|
|
81
85
|
# Then configure lograge yourself in config/environments/development.rb or an initializer,
|
@@ -1,10 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "json"
|
4
|
+
require "logger"
|
4
5
|
|
5
6
|
module LogBench
|
6
7
|
# A simple JSON formatter for Rails loggers that creates LogBench-compatible
|
8
|
+
# JSON logs. Extends TaggedLogging::Formatter for full Rails compatibility.
|
7
9
|
class JsonFormatter < ::Logger::Formatter
|
10
|
+
include ActiveSupport::TaggedLogging::Formatter
|
11
|
+
|
8
12
|
def call(severity, timestamp, progname, message)
|
9
13
|
log_entry = build_log_entry(severity, timestamp, progname, message)
|
10
14
|
log_entry.to_json + "\n"
|
@@ -17,16 +21,22 @@ module LogBench
|
|
17
21
|
|
18
22
|
def build_log_entry(severity, timestamp, progname, message)
|
19
23
|
entry = message_to_hash(message)
|
24
|
+
tags = current_tags
|
20
25
|
entry = parse_lograge_message(entry[:message]) if lograge_message?(entry)
|
21
26
|
request_id = current_request_id
|
22
27
|
|
23
|
-
|
28
|
+
base_entry = {
|
24
29
|
level: severity,
|
25
30
|
timestamp: timestamp.utc.iso8601(3),
|
26
31
|
time: timestamp.to_f,
|
27
32
|
request_id: request_id,
|
28
33
|
progname: progname
|
29
|
-
|
34
|
+
}
|
35
|
+
|
36
|
+
# Add tags if present
|
37
|
+
base_entry[:tags] = tags if tags.any?
|
38
|
+
|
39
|
+
entry.merge!(base_entry).compact
|
30
40
|
end
|
31
41
|
|
32
42
|
def message_to_hash(message)
|
data/lib/log_bench/railtie.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "rails/railtie"
|
2
|
+
require "lograge"
|
2
3
|
|
3
4
|
module LogBench
|
4
5
|
class Railtie < Rails::Railtie
|
@@ -36,12 +37,17 @@ module LogBench
|
|
36
37
|
puts LINE
|
37
38
|
end
|
38
39
|
|
39
|
-
#
|
40
|
-
|
40
|
+
# Configure lograge after user initializers but before Rails logger
|
41
|
+
initializer "log_bench.configure_lograge", after: :load_config_initializers, before: :initialize_logger do |app|
|
41
42
|
if LogBench.configuration.enabled
|
42
43
|
LogBench::Railtie.setup_lograge(app)
|
43
|
-
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
config.after_initialize do
|
48
|
+
if LogBench.configuration.enabled
|
44
49
|
LogBench::Railtie.setup_rails_logger_final
|
50
|
+
LogBench::Railtie.setup_current_attributes
|
45
51
|
LogBench::Railtie.validate_configuration!
|
46
52
|
end
|
47
53
|
end
|
@@ -68,7 +74,6 @@ module LogBench
|
|
68
74
|
end
|
69
75
|
end
|
70
76
|
|
71
|
-
# Setup Rails logger by re-wrapping with TaggedLogging
|
72
77
|
def setup_rails_logger_final
|
73
78
|
# Get the underlying logger (unwrap TaggedLogging if present)
|
74
79
|
base_logger = Rails.logger.respond_to?(:logger) ? Rails.logger.logger : Rails.logger
|
data/lib/log_bench/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log_bench
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamín Silva
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-07-07 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: zeitwerk
|