legion-logging 1.2.3 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c20f075efac1ef65649607d1b5064be03a2269391379deff8c52eff219ac4e11
4
- data.tar.gz: 30aad00425b227650adcbba0fb3dd595f469fcbd435d7e2c09eebfe012788808
3
+ metadata.gz: c5c68f56d267c3653df2d9a713072d2ab81445f437f64761e23ebd4bc8323e73
4
+ data.tar.gz: f78f23e438594a7eab25499a154b27d9fb0d043c54773c72c2f63affb9aa76b6
5
5
  SHA512:
6
- metadata.gz: bb849ea0ee29d6f1b3316caba8188568cd7dcc410e4eb8110f82d670e75edcfd069a323e298fadfe8f97b90d73db6fc84dd0e6e9abff0a7545e6642754c39cad
7
- data.tar.gz: da636a6561de29d660997594a58a722d141445b34514ed3cd0ce480bbf255f96e5de5aa2fe0f978c7bd11e157201172752372c318d45c12d4e47204df701937a
6
+ metadata.gz: 05a90fe04d73b187c72bb1d5bdc732ae2b314670306174bf0430f0e996bab0ed7e76fa51209a7dd295c94f5b4bac173a67032de51f5d7d2e89fee5ddcf26c361
7
+ data.tar.gz: 2a3b358b39146cb6e7bb6971f5cd7e881a528df16bd8823bea4cfa7cd8877f09bb9d8c57770176274e1a44e09b2731a86ae39354cc1ba4966aa76685b7d36eeb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
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
+
3
14
  ## v1.2.3
4
15
 
5
16
  ### Changed
@@ -26,5 +26,6 @@ Gem::Specification.new do |spec|
26
26
  'rubygems_mfa_required' => 'true'
27
27
  }
28
28
 
29
+ spec.add_dependency 'logger'
29
30
  spec.add_dependency 'rainbow', '~> 3'
30
31
  end
@@ -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
@@ -61,11 +63,12 @@ module Legion
61
63
 
62
64
  def output(**options)
63
65
  if options[:log_file] && options[:log_stdout] != false
66
+ path = prepare_log_path(options[:log_file])
64
67
  require_relative 'multi_io'
65
- io = MultiIO.new($stdout, File.open(options[:log_file], 'a'))
68
+ io = MultiIO.new($stdout, File.open(path, 'a'))
66
69
  @log = ::Logger.new(io)
67
70
  elsif options[:log_file]
68
- @log = ::Logger.new(options[:log_file])
71
+ @log = ::Logger.new(prepare_log_path(options[:log_file]))
69
72
  else
70
73
  @log = ::Logger.new($stdout)
71
74
  end
@@ -77,16 +80,23 @@ module Legion
77
80
 
78
81
  def set_log(logfile: nil, log_stdout: nil, **)
79
82
  if logfile && log_stdout != false
83
+ path = prepare_log_path(logfile)
80
84
  require_relative 'multi_io'
81
- io = MultiIO.new($stdout, File.open(logfile, 'a'))
85
+ io = MultiIO.new($stdout, File.open(path, 'a'))
82
86
  @log = ::Logger.new(io)
83
87
  elsif logfile
84
- @log = ::Logger.new(logfile)
88
+ @log = ::Logger.new(prepare_log_path(logfile))
85
89
  else
86
90
  @log = ::Logger.new($stdout)
87
91
  end
88
92
  end
89
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
+
90
100
  def level
91
101
  log.level
92
102
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module Logging
5
- VERSION = '1.2.3'
5
+ VERSION = '1.2.5'
6
6
  end
7
7
  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.3
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