active_logger 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|