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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 329985023815903e40757931bee2d0fef32a2f0e9e703570306b58acc403db34
4
- data.tar.gz: 30d2bc94716af0bbb5781fa8d43404154bd5e11cda6fc94b7d3564e0d0d17a0a
3
+ metadata.gz: 7e41d988455ce14566cfd4f5c3e0b6f8f56ba45e8a1f6da8d23a2e02f1665d0f
4
+ data.tar.gz: 0ac73b64c7762edb39bc8b7e6900815585bfb5153914f7150854afa01d157a23
5
5
  SHA512:
6
- metadata.gz: bc955d714639abbec8d7452915e4b6b166a7b5768b37cc29f14a61404aac48fd06d6d066e9c6f601824c8092dab56daefe6bc0ea834e760a2dca75dd44f180e7
7
- data.tar.gz: 36fac211a1ffc773b51614d53ff72dcf0d3c83b6adebc511b8694a77bfa9d3e7dd0c00c17e710d111881594da046a76f0bf06dd8ea1bbfaa6232a5a879689ad9
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-22 17:28:02 +0300 using RuboCop version 0.82.0.
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_logger (0.4.0)
4
+ active_logger (0.5.0)
5
5
  activesupport (>= 5.0.0)
6
6
 
7
7
  GEM
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::Logger.new(*args, &block)
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'
@@ -54,6 +54,10 @@ module ActiveLogger
54
54
  def pid
55
55
  $PID
56
56
  end
57
+
58
+ def default_progname
59
+ $PROGRAM_NAME
60
+ end
57
61
  end
58
62
  end
59
63
  end
@@ -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!; end
19
+ def reset!
20
+ self.progname = nil
21
+ end
12
22
  end
13
23
  end
14
24
  end
@@ -1,60 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveLogger
4
- module Logger # :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
- 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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveLogger
4
- VERSION = '0.4.0'
4
+ VERSION = '0.5.0'
5
5
  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.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-22 00:00:00.000000000 Z
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