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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54638d1c2311825640cda666c7900b1bdd091ab5d8c7a322fdf72a22f7c1ec2a
4
- data.tar.gz: 3ed84565ebc83f04d7d785b2581efadcb4e99a64138f0c1e37920ee4fb78bc94
3
+ metadata.gz: d2284e01a8b8c373629f5c7aaf8a648c06dd706a4a6d516cdc27a80ce63eb631
4
+ data.tar.gz: 6398739b5097e7cc59d2683e70eefbec5a305e0f85707a40f62ebcbd147176df
5
5
  SHA512:
6
- metadata.gz: 45c750d7a564b0ce713abf50e985fd3749d271c86136600738f3648921d375db75564a0809fe861fb80fb3653a92ec2e1e3120858dd019261d1b9da26de9cee4
7
- data.tar.gz: c28935a6b7992cc8db82df7b2fa75e008ee60b520a3bc82752c5d6caaaa6a407a19e0ac944d2c366b84167a9f2032bad489c3f1bec3636feef171ebffac1b1cf
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
- ## [Unreleased]
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module Logging
5
- VERSION = '1.3.1'
5
+ VERSION = '1.3.2'
6
6
  end
7
7
  end
@@ -7,6 +7,7 @@ require 'legion/logging/builder'
7
7
  require 'legion/logging/hooks'
8
8
  require 'legion/logging/event_builder'
9
9
  require 'legion/logging/async_writer'
10
+ require 'legion/logging/helper'
10
11
 
11
12
  require 'json'
12
13
  require 'logger'
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.1
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