lite_logger 0.1.7 → 0.1.8

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: bc0767fbf6ac0335c9837e6444668caf5882dfa7ac140552bcf6170c4b005689
4
- data.tar.gz: cfd5533a426c2762f8b9626bb405131853e197723561a8a3187e33eac3300874
3
+ metadata.gz: 283f90541b2fb3caa1a0bef10bda6668aa060b9c98dbd14e1ccbd1bfe40ec840
4
+ data.tar.gz: 125385af15559093117b87761cbbaa8ab22dd4a9f1783a4b082c0828e4e32003
5
5
  SHA512:
6
- metadata.gz: 4867f776609006ed5567edb328760b686328196d66651b06f9cec605081dc3eb3a37b86c22c7f55264f1294f8be5fcadffdebbd385de465e6b0b6caab60c0f7c
7
- data.tar.gz: a4462cb36487009bc994fb73fa3afc1945cb44ab33e6ed48f3e1ccc878ca1e653a1ce115b72183dc4d861240c838d9f1e6d04c0428653ab44b824bd28f48fb85
6
+ metadata.gz: 930654b332fe2068143c05378a81d0f281a2f26d9126e78f0c453b387082c9198bfbde4fdaf40bfd37c8b83ab3a17d5f6ba63bddf1943341fd34402a74d2c124
7
+ data.tar.gz: 3a663dfe21319a5680b952b7a9976cf28cf290d8922cae13ef193ff1f2f457d82db5a9fd581b102267fbbdb890ba238a740736d51d0f859458a32c74456a0013
data/CHANGELOG.md CHANGED
@@ -40,3 +40,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
40
40
 
41
41
  - Small text fix in README.md
42
42
  - Remove unused file `all_changes.txt`
43
+
44
+ ## [0.1.8] - 2026-03-29
45
+
46
+ - Add optional custom formatter support for application-specific log output.
47
+ - Create parent directories automatically when logging to a file destination.
48
+ - Move development tools out of runtime dependencies.
@@ -1,15 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'fileutils'
4
+ require 'json'
5
+
3
6
  module LiteLogger
4
7
  class Logger
5
8
  LEVELS = { debug: 0, info: 1, warn: 2, error: 3, fatal: 4 }.freeze
6
9
 
7
- attr_accessor :level, :format, :destination
10
+ attr_accessor :level, :format, :destination, :formatter
8
11
 
9
12
  def initialize
10
13
  @level = :info
11
14
  @format = :plain
12
15
  @destination = $stdout
16
+ @formatter = nil
13
17
  end
14
18
 
15
19
  LEVELS.each_key do |level_name|
@@ -29,6 +33,8 @@ module LiteLogger
29
33
 
30
34
  def format_message(level, message)
31
35
  current_time = Time.now
36
+ return @formatter.call(level, message, current_time) if @formatter
37
+
32
38
  case @format
33
39
  when :json
34
40
  { level: level, message: message, timestamp: current_time }.to_json
@@ -41,7 +47,10 @@ module LiteLogger
41
47
  case @destination
42
48
  when $stdout, $stderr
43
49
  @destination.puts message
50
+ when ->(destination) { destination.respond_to?(:puts) }
51
+ @destination.puts message
44
52
  else
53
+ FileUtils.mkdir_p(File.dirname(@destination))
45
54
  File.open(@destination, 'a') { |file| file.puts message }
46
55
  end
47
56
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LiteLogger
4
- VERSION = '0.1.7'
4
+ VERSION = '0.1.8'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lite_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Ferrari
@@ -16,7 +16,7 @@ dependencies:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
18
  version: '13.0'
19
- type: :runtime
19
+ type: :development
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
@@ -30,7 +30,7 @@ dependencies:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '3.0'
33
- type: :runtime
33
+ type: :development
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
@@ -44,7 +44,7 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.21'
47
- type: :runtime
47
+ type: :development
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements: