legion-logging 1.2.2 → 1.2.5
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 +18 -0
- data/legion-logging.gemspec +1 -0
- data/lib/legion/logging/builder.rb +19 -5
- data/lib/legion/logging/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c5c68f56d267c3653df2d9a713072d2ab81445f437f64761e23ebd4bc8323e73
|
|
4
|
+
data.tar.gz: f78f23e438594a7eab25499a154b27d9fb0d043c54773c72c2f63affb9aa76b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 05a90fe04d73b187c72bb1d5bdc732ae2b314670306174bf0430f0e996bab0ed7e76fa51209a7dd295c94f5b4bac173a67032de51f5d7d2e89fee5ddcf26c361
|
|
7
|
+
data.tar.gz: 2a3b358b39146cb6e7bb6971f5cd7e881a528df16bd8823bea4cfa7cd8877f09bb9d8c57770176274e1a44e09b2731a86ae39354cc1ba4966aa76685b7d36eeb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Legion::Logging Changelog
|
|
2
2
|
|
|
3
|
+
## v1.2.5
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Added `logger` gem as runtime dependency for Ruby 4.0 compatibility (removed from default gems)
|
|
7
|
+
|
|
8
|
+
## v1.2.4
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- Expand `~` in log_file paths with `File.expand_path` (fixes `Errno::ENOENT` for paths like `~/.legionio/logs/legion.log`)
|
|
12
|
+
- Auto-create parent directories for log files with `FileUtils.mkdir_p`
|
|
13
|
+
|
|
14
|
+
## v1.2.3
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- `Builder#text_format` now accepts `lex_segments:` array and formats it as stacked brackets (e.g. `[agentic][cognitive][anchor]`)
|
|
18
|
+
- Falls back to legacy `lex:` string kwarg for backward compatibility with existing callers
|
|
19
|
+
- `lex: nil` no longer produces a spurious `[]` bracket in log output
|
|
20
|
+
|
|
3
21
|
## v1.2.2
|
|
4
22
|
|
|
5
23
|
### Added
|
data/legion-logging.gemspec
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
|
|
3
5
|
module Legion
|
|
4
6
|
module Logging
|
|
5
7
|
module Builder
|
|
@@ -33,7 +35,11 @@ module Legion
|
|
|
33
35
|
|
|
34
36
|
def text_format(include_pid: false, **options)
|
|
35
37
|
log.formatter = proc do |severity, datetime, _progname, msg|
|
|
36
|
-
options[:lex_name] = options.key?(:
|
|
38
|
+
options[:lex_name] = if options.key?(:lex_segments)
|
|
39
|
+
options[:lex_segments].map { |s| "[#{s}]" }.join
|
|
40
|
+
elsif options.key?(:lex) && !options[:lex].nil?
|
|
41
|
+
"[#{options[:lex]}]"
|
|
42
|
+
end
|
|
37
43
|
unless options[:lex_name].nil?
|
|
38
44
|
loc = caller_locations[4]
|
|
39
45
|
path = loc.to_s.split('/').last(2)
|
|
@@ -57,11 +63,12 @@ module Legion
|
|
|
57
63
|
|
|
58
64
|
def output(**options)
|
|
59
65
|
if options[:log_file] && options[:log_stdout] != false
|
|
66
|
+
path = prepare_log_path(options[:log_file])
|
|
60
67
|
require_relative 'multi_io'
|
|
61
|
-
io = MultiIO.new($stdout, File.open(
|
|
68
|
+
io = MultiIO.new($stdout, File.open(path, 'a'))
|
|
62
69
|
@log = ::Logger.new(io)
|
|
63
70
|
elsif options[:log_file]
|
|
64
|
-
@log = ::Logger.new(options[:log_file])
|
|
71
|
+
@log = ::Logger.new(prepare_log_path(options[:log_file]))
|
|
65
72
|
else
|
|
66
73
|
@log = ::Logger.new($stdout)
|
|
67
74
|
end
|
|
@@ -73,16 +80,23 @@ module Legion
|
|
|
73
80
|
|
|
74
81
|
def set_log(logfile: nil, log_stdout: nil, **)
|
|
75
82
|
if logfile && log_stdout != false
|
|
83
|
+
path = prepare_log_path(logfile)
|
|
76
84
|
require_relative 'multi_io'
|
|
77
|
-
io = MultiIO.new($stdout, File.open(
|
|
85
|
+
io = MultiIO.new($stdout, File.open(path, 'a'))
|
|
78
86
|
@log = ::Logger.new(io)
|
|
79
87
|
elsif logfile
|
|
80
|
-
@log = ::Logger.new(logfile)
|
|
88
|
+
@log = ::Logger.new(prepare_log_path(logfile))
|
|
81
89
|
else
|
|
82
90
|
@log = ::Logger.new($stdout)
|
|
83
91
|
end
|
|
84
92
|
end
|
|
85
93
|
|
|
94
|
+
def prepare_log_path(path)
|
|
95
|
+
expanded = File.expand_path(path)
|
|
96
|
+
FileUtils.mkdir_p(File.dirname(expanded))
|
|
97
|
+
expanded
|
|
98
|
+
end
|
|
99
|
+
|
|
86
100
|
def level
|
|
87
101
|
log.level
|
|
88
102
|
end
|
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.2.
|
|
4
|
+
version: 1.2.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -9,6 +9,20 @@ bindir: bin
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: logger
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0'
|
|
12
26
|
- !ruby/object:Gem::Dependency
|
|
13
27
|
name: rainbow
|
|
14
28
|
requirement: !ruby/object:Gem::Requirement
|