active_logger 0.5.0 → 0.6.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 +4 -4
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +1 -1
- data/Gemfile.lock +1 -1
- data/README.md +11 -22
- data/lib/active_logger.rb +9 -0
- data/lib/active_logger/helpers/base.rb +13 -1
- data/lib/active_logger/logging.rb +7 -4
- data/lib/active_logger/repository.rb +45 -0
- data/lib/active_logger/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de90e33dae18637a255cca38604b48ebff3f3ce945cefa03d5c339693c6b285b
|
4
|
+
data.tar.gz: 66a6ea3e78cd15009f4f74ced1b66905df43a639e9a6ec4215e3c8869d849a2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c2d04686048dc136ca574a18c9fd9a1a5873dfa607d9700526e53a7163ca57dadf85ac090475319892dbe1839f53f9c086319f7a25233e03c5fcfd9e8b0fedd
|
7
|
+
data.tar.gz: 8d7c1a4abc84a870d8d427d20638e7f1fdf915a271033fd040e62cb83a48e2df9bf48de575aa709696360fe8b1ab730157d9e2095286552f9204f056fb9c50eb
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2020-04-
|
3
|
+
# on 2020-04-26 23:35:43 +0300 using RuboCop version 0.82.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -83,37 +83,26 @@ logger.tagged('API') do
|
|
83
83
|
end
|
84
84
|
```
|
85
85
|
|
86
|
-
### Example:
|
86
|
+
### Example: Global logger with name
|
87
87
|
|
88
88
|
```ruby
|
89
|
-
ActiveLogger.new STDOUT, level: :
|
89
|
+
ActiveLogger.new STDOUT, name: :logger1, level: :debug
|
90
|
+
ActiveLogger.new STDOUT, name: :logger2, level: :info
|
90
91
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
al.level = :debug
|
92
|
+
logger1 = ActiveLogger['logger1']
|
93
|
+
logger1.debug? # true
|
94
|
+
logger1.debug 'test'
|
95
95
|
|
96
|
-
|
97
|
-
|
96
|
+
logger2 = ActiveLogger['logger2']
|
97
|
+
logger2.debug? # false
|
98
|
+
logger2.info 'test2'
|
98
99
|
```
|
99
100
|
|
100
|
-
### Example:
|
101
|
+
### Example: Custom formatter
|
101
102
|
|
102
|
-
|
103
|
+
You can create your own formatter:
|
103
104
|
|
104
105
|
```ruby
|
105
|
-
ActiveLogger.new STDOUT, formatter: :json
|
106
|
-
|
107
|
-
# or
|
108
|
-
|
109
|
-
ActiveLogger.new do |al|
|
110
|
-
al.formatter = :json
|
111
|
-
|
112
|
-
al.appender :stdout
|
113
|
-
end
|
114
|
-
|
115
|
-
# or custom formatter
|
116
|
-
|
117
106
|
class Formatter < ActiveLogger::Formatters::Base
|
118
107
|
def call(severity, timestamp, progname, msg)
|
119
108
|
"[#{severity}] [#{timestamp}] #{msg}"
|
data/lib/active_logger.rb
CHANGED
@@ -9,6 +9,14 @@ module ActiveLogger # :nodoc:
|
|
9
9
|
def new(*args, &block)
|
10
10
|
ActiveLogger::Logging.new(*args, &block)
|
11
11
|
end
|
12
|
+
|
13
|
+
def [](name)
|
14
|
+
ActiveLogger::Repository[name]
|
15
|
+
end
|
16
|
+
|
17
|
+
def []=(name, logger)
|
18
|
+
ActiveLogger::Repository[name] = logger
|
19
|
+
end
|
12
20
|
end
|
13
21
|
|
14
22
|
# Formatters
|
@@ -25,3 +33,4 @@ require File.dirname(__FILE__) + '/active_logger/helpers/appender'
|
|
25
33
|
require File.dirname(__FILE__) + '/active_logger/tagged_logging'
|
26
34
|
require File.dirname(__FILE__) + '/active_logger/logging'
|
27
35
|
require File.dirname(__FILE__) + '/active_logger/logger'
|
36
|
+
require File.dirname(__FILE__) + '/active_logger/repository'
|
@@ -14,10 +14,22 @@ module ActiveLogger #:nodoc:
|
|
14
14
|
@progname
|
15
15
|
end
|
16
16
|
|
17
|
+
def name=(name)
|
18
|
+
@name = name.nil? ? "<ActiveLogger##{object_id}>" : name
|
19
|
+
end
|
20
|
+
|
21
|
+
def name
|
22
|
+
@name
|
23
|
+
end
|
24
|
+
|
25
|
+
def autogenerated_name?
|
26
|
+
name.start_with?('<ActiveLogger')
|
27
|
+
end
|
28
|
+
|
17
29
|
private
|
18
30
|
|
19
31
|
def reset!
|
20
|
-
self.
|
32
|
+
self.name = nil
|
21
33
|
end
|
22
34
|
end
|
23
35
|
end
|
@@ -15,9 +15,10 @@ module ActiveLogger
|
|
15
15
|
|
16
16
|
reset!
|
17
17
|
|
18
|
-
self.formatter = options[:formatter]
|
19
|
-
self.level = options[:level]
|
20
|
-
self.progname = options[:progname]
|
18
|
+
self.formatter = options[:formatter] if options[:formatter]
|
19
|
+
self.level = options[:level] if options[:level]
|
20
|
+
self.progname = options[:progname] if options[:progname]
|
21
|
+
self.name = options[:name] if options[:name]
|
21
22
|
|
22
23
|
if block_given?
|
23
24
|
block.arity.positive? ? block.call(self) : instance_eval(&block)
|
@@ -28,7 +29,9 @@ module ActiveLogger
|
|
28
29
|
|
29
30
|
assign_appenders = appenders.drop(1)
|
30
31
|
loggers = assign_appenders.inject(appenders[0]) { |appender, acc| acc.extend(ActiveSupport::Logger.broadcast(appender)) }
|
31
|
-
TaggedLogging.new(loggers)
|
32
|
+
logger = TaggedLogging.new(loggers)
|
33
|
+
ActiveLogger::Repository[name] = logger unless autogenerated_name?
|
34
|
+
logger
|
32
35
|
end
|
33
36
|
end
|
34
37
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'monitor'
|
4
|
+
require 'singleton'
|
5
|
+
|
6
|
+
module ActiveLogger
|
7
|
+
class LoggerNotFound < StandardError # :nodoc:
|
8
|
+
def message
|
9
|
+
"Could not find a ActiveLogger::Logger instance with the name '#{super}'"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class Repository # :nodoc:
|
14
|
+
extend MonitorMixin
|
15
|
+
include Singleton
|
16
|
+
|
17
|
+
attr_reader :loggers
|
18
|
+
|
19
|
+
def initialize
|
20
|
+
@loggers = {}
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.[]=(name, logger)
|
24
|
+
synchronize { instance.loggers[name] = logger }
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.[](name)
|
28
|
+
synchronize do
|
29
|
+
instance.__fetch__(name) || (raise ActiveLogger::LoggerNotFound, name)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.loggers
|
34
|
+
synchronize { instance.loggers }
|
35
|
+
end
|
36
|
+
|
37
|
+
def __fetch__(name)
|
38
|
+
logger = loggers[name] || loggers[name.to_s]
|
39
|
+
|
40
|
+
return __fetch__(name.superclass) if logger.nil? && name.respond_to?(:superclass)
|
41
|
+
|
42
|
+
logger
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yury Snegirev
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- lib/active_logger/helpers/level.rb
|
56
56
|
- lib/active_logger/logger.rb
|
57
57
|
- lib/active_logger/logging.rb
|
58
|
+
- lib/active_logger/repository.rb
|
58
59
|
- lib/active_logger/tagged_logging.rb
|
59
60
|
- lib/active_logger/version.rb
|
60
61
|
- log/.keep
|