active_logger 0.4.0 → 0.5.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 +19 -0
- data/.rubocop_todo.yml +1 -1
- data/Gemfile.lock +1 -1
- data/README.md +9 -0
- data/lib/active_logger.rb +2 -1
- data/lib/active_logger/formatters/base.rb +4 -0
- data/lib/active_logger/formatters/default.rb +1 -1
- data/lib/active_logger/formatters/json.rb +1 -1
- data/lib/active_logger/helpers/appender.rb +28 -0
- data/lib/active_logger/helpers/base.rb +11 -1
- data/lib/active_logger/logger.rb +1 -55
- data/lib/active_logger/logging.rb +34 -0
- data/lib/active_logger/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e41d988455ce14566cfd4f5c3e0b6f8f56ba45e8a1f6da8d23a2e02f1665d0f
|
4
|
+
data.tar.gz: 0ac73b64c7762edb39bc8b7e6900815585bfb5153914f7150854afa01d157a23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dee86fdf0440c72c4d2adb9cc8e6a904541e9b1ad0956a509d9cb1bbc342a419305d4b84480f7e4058fe953e23ff2c660768bb990143cf4571f19ce8b4b71419
|
7
|
+
data.tar.gz: e105ab24cb5d3bed005d044fce0026ba4c54749030d55ffc8626ae1180f4aec8067e47b04fb6d696b6cf6b17206f0f292e216f4891808d4e9fb00f956c5c15e1
|
data/.rubocop.yml
CHANGED
@@ -6,9 +6,25 @@ require:
|
|
6
6
|
AllCops:
|
7
7
|
NewCops: enable
|
8
8
|
|
9
|
+
# ************************
|
10
|
+
# LAYOUT
|
11
|
+
# ************************
|
12
|
+
|
9
13
|
Layout/LineLength:
|
10
14
|
Max: 130
|
11
15
|
|
16
|
+
# ************************
|
17
|
+
# METRICS
|
18
|
+
# ************************
|
19
|
+
|
20
|
+
# Configuration parameters: IgnoredMethods.
|
21
|
+
Metrics/CyclomaticComplexity:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
# Configuration parameters: IgnoredMethods.
|
25
|
+
Metrics/PerceivedComplexity:
|
26
|
+
Enabled: false
|
27
|
+
|
12
28
|
Metrics/BlockLength:
|
13
29
|
Enabled: false
|
14
30
|
|
@@ -19,5 +35,8 @@ Metrics/MethodLength:
|
|
19
35
|
Metrics/AbcSize:
|
20
36
|
Max: 30
|
21
37
|
|
38
|
+
# ************************
|
39
|
+
# RSPEC
|
40
|
+
# ************************
|
22
41
|
RSpec/LeakyConstantDeclaration:
|
23
42
|
Enabled: false
|
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-24 16:26:20 +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
@@ -27,6 +27,9 @@ Or install it yourself as:
|
|
27
27
|
```ruby
|
28
28
|
logger = ActiveLogger.new :stdout
|
29
29
|
logger.info 'test' # => test
|
30
|
+
|
31
|
+
# with options
|
32
|
+
logger = ActiveLogger.new :stdout, level: :debug, formatter: :json, progname: :project1
|
30
33
|
```
|
31
34
|
|
32
35
|
There are 3 types:
|
@@ -35,6 +38,12 @@ There are 3 types:
|
|
35
38
|
* `:stderr` : Messages will be written to STDERR
|
36
39
|
* `:file` : Messages will be written to a file
|
37
40
|
|
41
|
+
Available standard options:
|
42
|
+
|
43
|
+
* `level` - log level (`DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`)
|
44
|
+
* `formatter` - format for logs: `:default`, `:json` or own custom formatter.
|
45
|
+
* `progname` - program name.
|
46
|
+
|
38
47
|
### File example
|
39
48
|
|
40
49
|
```ruby
|
data/lib/active_logger.rb
CHANGED
@@ -7,7 +7,7 @@ module ActiveLogger # :nodoc:
|
|
7
7
|
module_function
|
8
8
|
|
9
9
|
def new(*args, &block)
|
10
|
-
ActiveLogger::
|
10
|
+
ActiveLogger::Logging.new(*args, &block)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -23,4 +23,5 @@ require File.dirname(__FILE__) + '/active_logger/helpers/formatter'
|
|
23
23
|
require File.dirname(__FILE__) + '/active_logger/helpers/appender'
|
24
24
|
|
25
25
|
require File.dirname(__FILE__) + '/active_logger/tagged_logging'
|
26
|
+
require File.dirname(__FILE__) + '/active_logger/logging'
|
26
27
|
require File.dirname(__FILE__) + '/active_logger/logger'
|
@@ -5,7 +5,7 @@ module ActiveLogger
|
|
5
5
|
module Formatters
|
6
6
|
class Default < Base # :nodoc:
|
7
7
|
def call(severity, timestamp, progname, msg)
|
8
|
-
super(severity, timestamp, progname, "#{tags_text}#{msg}")
|
8
|
+
super(severity, timestamp, progname || default_progname, "#{tags_text}#{msg}")
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
@@ -7,7 +7,7 @@ module ActiveLogger
|
|
7
7
|
class Json < Base # :nodoc:
|
8
8
|
def call(severity, timestamp, progname, msg)
|
9
9
|
{
|
10
|
-
progname: progname,
|
10
|
+
progname: progname || default_progname,
|
11
11
|
severity: severity,
|
12
12
|
timestamp: timestamp.utc.strftime(datetime_format),
|
13
13
|
tags: current_tags,
|
@@ -5,6 +5,9 @@ module ActiveLogger #:nodoc:
|
|
5
5
|
module Appender #:nodoc:
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
|
+
class AppenderNotFound < StandardError; end
|
9
|
+
class FilenameNotSpecified < StandardError; end
|
10
|
+
|
8
11
|
class_methods do
|
9
12
|
def appender(type, options = {})
|
10
13
|
appenders << loggable(type, options)
|
@@ -13,6 +16,31 @@ module ActiveLogger #:nodoc:
|
|
13
16
|
def appenders
|
14
17
|
@appenders ||= []
|
15
18
|
end
|
19
|
+
|
20
|
+
def loggable(type, options = {})
|
21
|
+
parameters = []
|
22
|
+
|
23
|
+
case type
|
24
|
+
when :stdout, STDOUT
|
25
|
+
parameters << STDOUT
|
26
|
+
when :stderr, STDERR
|
27
|
+
parameters << STDERR
|
28
|
+
when String, Pathname
|
29
|
+
parameters = [type.to_s, options[:keep], options[:size]]
|
30
|
+
when :file
|
31
|
+
raise FilenameNotSpecified if options[:filename].nil?
|
32
|
+
|
33
|
+
parameters = [options[:filename], options[:keep], options[:size]]
|
34
|
+
else
|
35
|
+
raise AppenderNotFound
|
36
|
+
end
|
37
|
+
|
38
|
+
logger = ActiveLogger::Logger.new(*parameters)
|
39
|
+
logger.level = level
|
40
|
+
logger.formatter = formatter
|
41
|
+
logger.progname = progname
|
42
|
+
logger
|
43
|
+
end
|
16
44
|
end
|
17
45
|
end
|
18
46
|
end
|
@@ -6,9 +6,19 @@ module ActiveLogger #:nodoc:
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
class_methods do
|
9
|
+
def progname=(progname)
|
10
|
+
@progname = progname
|
11
|
+
end
|
12
|
+
|
13
|
+
def progname
|
14
|
+
@progname
|
15
|
+
end
|
16
|
+
|
9
17
|
private
|
10
18
|
|
11
|
-
def reset
|
19
|
+
def reset!
|
20
|
+
self.progname = nil
|
21
|
+
end
|
12
22
|
end
|
13
23
|
end
|
14
24
|
end
|
data/lib/active_logger/logger.rb
CHANGED
@@ -1,60 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ActiveLogger
|
4
|
-
|
5
|
-
module_function
|
6
|
-
|
7
|
-
include ActiveLogger::Helpers::Base
|
8
|
-
include ActiveLogger::Helpers::Level
|
9
|
-
include ActiveLogger::Helpers::Formatter
|
10
|
-
include ActiveLogger::Helpers::Appender
|
11
|
-
|
12
|
-
class AppenderNotFound < StandardError; end
|
13
|
-
class FilenameNotSpecified < StandardError; end
|
14
|
-
|
15
|
-
def new(*args, &block)
|
16
|
-
# extract options
|
17
|
-
options = args.last.is_a?(Hash) ? args.pop : {}
|
18
|
-
|
19
|
-
reset!
|
20
|
-
|
21
|
-
self.formatter = options[:formatter] unless options[:formatter].nil?
|
22
|
-
self.level = options[:level] unless options[:level].nil?
|
23
|
-
|
24
|
-
if block_given?
|
25
|
-
block.arity.positive? ? block.call(self) : instance_eval(&block)
|
26
|
-
else
|
27
|
-
type = args.first
|
28
|
-
appender(type, options)
|
29
|
-
end
|
30
|
-
|
31
|
-
assign_appenders = appenders.drop(1)
|
32
|
-
loggers = assign_appenders.inject(appenders[0]) { |appender, acc| acc.extend(ActiveSupport::Logger.broadcast(appender)) }
|
33
|
-
TaggedLogging.new(loggers)
|
34
|
-
end
|
35
|
-
|
36
|
-
def loggable(type, options = {})
|
37
|
-
parameters = []
|
38
|
-
|
39
|
-
case type
|
40
|
-
when :stdout, STDOUT
|
41
|
-
parameters << STDOUT
|
42
|
-
when :stderr, STDERR
|
43
|
-
parameters << STDERR
|
44
|
-
when String, Pathname
|
45
|
-
parameters = [type.to_s, options[:keep], options[:size]]
|
46
|
-
when :file
|
47
|
-
raise FilenameNotSpecified if options[:filename].nil?
|
48
|
-
|
49
|
-
parameters = [options[:filename], options[:keep], options[:size]]
|
50
|
-
else
|
51
|
-
raise AppenderNotFound
|
52
|
-
end
|
53
|
-
|
54
|
-
logger = ActiveSupport::Logger.new(*parameters)
|
55
|
-
logger.level = level
|
56
|
-
logger.formatter = formatter
|
57
|
-
logger
|
58
|
-
end
|
4
|
+
class Logger < ActiveSupport::Logger # :nodoc:
|
59
5
|
end
|
60
6
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveLogger
|
4
|
+
module Logging # :nodoc:
|
5
|
+
module_function
|
6
|
+
|
7
|
+
include ActiveLogger::Helpers::Base
|
8
|
+
include ActiveLogger::Helpers::Level
|
9
|
+
include ActiveLogger::Helpers::Formatter
|
10
|
+
include ActiveLogger::Helpers::Appender
|
11
|
+
|
12
|
+
def new(*args, &block)
|
13
|
+
# extract options
|
14
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
15
|
+
|
16
|
+
reset!
|
17
|
+
|
18
|
+
self.formatter = options[:formatter] unless options[:formatter].nil?
|
19
|
+
self.level = options[:level] unless options[:level].nil?
|
20
|
+
self.progname = options[:progname] unless options[:progname].nil?
|
21
|
+
|
22
|
+
if block_given?
|
23
|
+
block.arity.positive? ? block.call(self) : instance_eval(&block)
|
24
|
+
else
|
25
|
+
type = args.first
|
26
|
+
appender(type, options)
|
27
|
+
end
|
28
|
+
|
29
|
+
assign_appenders = appenders.drop(1)
|
30
|
+
loggers = assign_appenders.inject(appenders[0]) { |appender, acc| acc.extend(ActiveSupport::Logger.broadcast(appender)) }
|
31
|
+
TaggedLogging.new(loggers)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yury Snegirev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- lib/active_logger/helpers/formatter.rb
|
55
55
|
- lib/active_logger/helpers/level.rb
|
56
56
|
- lib/active_logger/logger.rb
|
57
|
+
- lib/active_logger/logging.rb
|
57
58
|
- lib/active_logger/tagged_logging.rb
|
58
59
|
- lib/active_logger/version.rb
|
59
60
|
- log/.keep
|