legion-logging 1.3.1 → 1.3.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/CHANGELOG.md +7 -1
- data/lib/legion/logging/helper.rb +48 -0
- data/lib/legion/logging/version.rb +1 -1
- data/lib/legion/logging.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d2284e01a8b8c373629f5c7aaf8a648c06dd706a4a6d516cdc27a80ce63eb631
|
|
4
|
+
data.tar.gz: 6398739b5097e7cc59d2683e70eefbec5a305e0f85707a40f62ebcbd147176df
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bd5bbabd136edfc7079db6e7ff1a804839a9513e135f2594b0cfc43a17573d9aa0cf30f0d9a3c47e4e0fabf91cefb3772394076e98767b44adee9edaa940384f
|
|
7
|
+
data.tar.gz: a2fec71358fc96100f3fddae8002b762aad9381c5a030eec3c60b6d282f081204e6699d8f34a8a19901c104ae49d3ea708eca32bcccc793b265c50faad328c16
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# Legion::Logging Changelog
|
|
2
2
|
|
|
3
|
-
## [
|
|
3
|
+
## [1.3.2] - 2026-03-22
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- `Legion::Logging::Helper` module: injectable `log` mixin for LEX extensions
|
|
7
|
+
- Derives logger tags from `segments`, `lex_filename`, or class name (in priority order)
|
|
8
|
+
- Passes through `settings[:logger]` config when available
|
|
9
|
+
- Allows LEX gems to use `legion-logging` directly instead of requiring the full LegionIO framework
|
|
4
10
|
|
|
5
11
|
## [1.3.1] - 2026-03-22
|
|
6
12
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Logging
|
|
5
|
+
module Helper
|
|
6
|
+
def log
|
|
7
|
+
return @log unless @log.nil?
|
|
8
|
+
|
|
9
|
+
logger_hash = if respond_to?(:segments)
|
|
10
|
+
{ lex_segments: Array(segments) }
|
|
11
|
+
else
|
|
12
|
+
{ lex: derive_log_tag }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
if respond_to?(:settings) && settings.is_a?(Hash) && settings.key?(:logger)
|
|
16
|
+
ls = settings[:logger]
|
|
17
|
+
logger_hash[:level] = ls[:level] if ls.key?(:level)
|
|
18
|
+
logger_hash[:log_file] = ls[:log_file] if ls.key?(:log_file)
|
|
19
|
+
logger_hash[:trace] = ls[:trace] if ls.key?(:trace)
|
|
20
|
+
logger_hash[:extended] = ls[:extended] if ls.key?(:extended)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
@log = Legion::Logging::Logger.new(**logger_hash)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def derive_log_tag
|
|
29
|
+
if respond_to?(:lex_filename)
|
|
30
|
+
fname = lex_filename
|
|
31
|
+
return fname.is_a?(Array) ? fname.first : fname
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
name = respond_to?(:ancestors) ? ancestors.first.to_s : self.class.to_s
|
|
35
|
+
parts = name.split('::')
|
|
36
|
+
ext_idx = parts.index('Extensions')
|
|
37
|
+
target = if ext_idx && parts[ext_idx + 1]
|
|
38
|
+
parts[ext_idx + 1]
|
|
39
|
+
else
|
|
40
|
+
parts.last
|
|
41
|
+
end
|
|
42
|
+
target.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
|
43
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
44
|
+
.downcase
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
data/lib/legion/logging.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: legion-logging
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -60,6 +60,7 @@ files:
|
|
|
60
60
|
- lib/legion/logging/async_writer.rb
|
|
61
61
|
- lib/legion/logging/builder.rb
|
|
62
62
|
- lib/legion/logging/event_builder.rb
|
|
63
|
+
- lib/legion/logging/helper.rb
|
|
63
64
|
- lib/legion/logging/hooks.rb
|
|
64
65
|
- lib/legion/logging/logger.rb
|
|
65
66
|
- lib/legion/logging/methods.rb
|