konsierge-logger 0.1.0
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 +7 -0
- data/Rakefile +1 -0
- data/lib/konsierge/logger/level_filtered_logger.rb +38 -0
- data/lib/konsierge/logger/version.rb +5 -0
- data/lib/konsierge/logger.rb +55 -0
- data/lib/konsierge-logger.rb +1 -0
- metadata +50 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: c3e36a75e3be1e81d7b3bfa98e3cb7964d14809771916a6d51325fb175a5f21f
|
|
4
|
+
data.tar.gz: 5024f98cfe54ab47889a80d21a2a203f2d5e7b72b7b59e579247bb01ec1f6cfc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 35e3dc3fd52742bbeec79a9c87c64653a45c4bff73bea2879033110aaff0224d25a51cbd8d7733dd23212f4fdb7dc94a22f419368326b735caba43aae60c7ff1
|
|
7
|
+
data.tar.gz: 97674eab33fd18cc1a8f5805bfffecf0ba4883283e57e780806650219a77bc72e3ae0b3d21f60b3b0a1fab6951911891b2732194c2df342c339bad58769d80a8
|
data/Rakefile
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
|
|
3
|
+
module Konsierge
|
|
4
|
+
module Logger
|
|
5
|
+
class LevelFilteredLogger
|
|
6
|
+
attr_reader :backend, :level
|
|
7
|
+
|
|
8
|
+
def initialize(backend, level:)
|
|
9
|
+
@backend = backend
|
|
10
|
+
@level = level
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def add(severity, message = nil, progname = nil, &block)
|
|
14
|
+
return true if severity < level
|
|
15
|
+
|
|
16
|
+
backend.add(severity, message, progname, &block)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
::Logger::Severity.constants.each do |severity_name|
|
|
20
|
+
severity = ::Logger::Severity.const_get(severity_name)
|
|
21
|
+
|
|
22
|
+
define_method(severity_name.to_s.downcase) do |progname = nil, &block|
|
|
23
|
+
add(severity, nil, progname, &block)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def method_missing(method_name, *args, &block)
|
|
28
|
+
return super unless backend.respond_to?(method_name)
|
|
29
|
+
|
|
30
|
+
backend.public_send(method_name, *args, &block)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def respond_to_missing?(method_name, include_private = false)
|
|
34
|
+
backend.respond_to?(method_name, include_private) || super
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
require 'logger'
|
|
2
|
+
|
|
3
|
+
require_relative 'logger/version'
|
|
4
|
+
require_relative 'logger/level_filtered_logger'
|
|
5
|
+
|
|
6
|
+
module Konsierge
|
|
7
|
+
module Logger
|
|
8
|
+
module_function
|
|
9
|
+
|
|
10
|
+
def resolve(logger:, log_level:, default_logger: nil)
|
|
11
|
+
level = resolve_level(log_level)
|
|
12
|
+
configured_logger = resolve_config_value(logger)
|
|
13
|
+
|
|
14
|
+
return LevelFilteredLogger.new(configured_logger, level: level) if configured_logger
|
|
15
|
+
|
|
16
|
+
rails_logger = resolve_rails_logger
|
|
17
|
+
return LevelFilteredLogger.new(rails_logger, level: level) if rails_logger
|
|
18
|
+
|
|
19
|
+
backend = default_logger || build_default_logger
|
|
20
|
+
backend.level = level if backend.respond_to?(:level=)
|
|
21
|
+
backend
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def build_default_logger
|
|
25
|
+
::Logger.new($stdout, formatter: ->(_, _, _, msg) { "#{msg}\n" })
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def resolve_level(log_level)
|
|
29
|
+
level = resolve_config_value(log_level)
|
|
30
|
+
|
|
31
|
+
case level
|
|
32
|
+
when Integer
|
|
33
|
+
level
|
|
34
|
+
when String, Symbol
|
|
35
|
+
::Logger::Severity.const_get(level.to_s.upcase)
|
|
36
|
+
else
|
|
37
|
+
::Logger::INFO
|
|
38
|
+
end
|
|
39
|
+
rescue NameError
|
|
40
|
+
::Logger::INFO
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def resolve_config_value(value)
|
|
44
|
+
value.respond_to?(:call) ? value.call : value
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def resolve_rails_logger
|
|
48
|
+
return nil unless defined?(::Rails)
|
|
49
|
+
return nil unless ::Rails.respond_to?(:logger)
|
|
50
|
+
|
|
51
|
+
::Rails.logger
|
|
52
|
+
end
|
|
53
|
+
private_class_method :resolve_rails_logger
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require_relative 'konsierge/logger'
|
metadata
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: konsierge-logger
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- David Rybolovlev
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: Provides a level-filtered logger wrapper and shared logger/level resolution
|
|
13
|
+
logic.
|
|
14
|
+
email:
|
|
15
|
+
- i@golifox.ru
|
|
16
|
+
executables: []
|
|
17
|
+
extensions: []
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- Rakefile
|
|
21
|
+
- lib/konsierge-logger.rb
|
|
22
|
+
- lib/konsierge/logger.rb
|
|
23
|
+
- lib/konsierge/logger/level_filtered_logger.rb
|
|
24
|
+
- lib/konsierge/logger/version.rb
|
|
25
|
+
homepage: https://gitlab.konsierge.com/digitalbox-public/gem/konsierge-logger
|
|
26
|
+
licenses:
|
|
27
|
+
- MIT
|
|
28
|
+
metadata:
|
|
29
|
+
homepage_uri: https://gitlab.konsierge.com/digitalbox-public/gem/konsierge-logger
|
|
30
|
+
source_code_uri: https://gitlab.konsierge.com/digitalbox-public/gem/konsierge-logger
|
|
31
|
+
changelog_uri: https://gitlab.konsierge.com/digitalbox-public/gem/konsierge-logger/-/blob/main/CHANGELOG.md
|
|
32
|
+
rubygems_mfa_required: 'false'
|
|
33
|
+
rdoc_options: []
|
|
34
|
+
require_paths:
|
|
35
|
+
- lib
|
|
36
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 2.7.0
|
|
41
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
42
|
+
requirements:
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
46
|
+
requirements: []
|
|
47
|
+
rubygems_version: 4.0.10
|
|
48
|
+
specification_version: 4
|
|
49
|
+
summary: Shared logging utilities for Konsierge gems
|
|
50
|
+
test_files: []
|