logged 0.1.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logged/formatter/base'
2
4
 
3
5
  module Logged
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logged/formatter/base'
2
4
 
3
5
  module Logged
@@ -5,6 +7,8 @@ module Logged
5
7
  # Single-Key formatter for logged
6
8
  class SingleKey < Base
7
9
  def initialize(key)
10
+ super()
11
+
8
12
  @key = key
9
13
  end
10
14
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Logged
2
4
  # Conversion between log level symbols and integers
3
5
  module LevelConversion
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'uri'
2
4
  require 'logged/log_subscriber/base'
3
5
 
@@ -10,17 +12,7 @@ module Logged
10
12
  def process_action(event)
11
13
  return if ignore?(event, :info)
12
14
 
13
- payload = event.payload
14
-
15
- data = {
16
- event: event.name
17
- }
18
-
19
- data.merge!(extract_request(payload))
20
- data.merge!(cached_event_data)
21
- data.merge!(extract_path(payload))
22
- data.merge!(extract_status(payload))
23
- data.merge!(extract_runtimes(payload))
15
+ data = process_action_data(event)
24
16
 
25
17
  data[:duration] = event.duration.to_f.round(2)
26
18
 
@@ -75,7 +67,7 @@ module Logged
75
67
 
76
68
  {
77
69
  view_runtime: view_runtime,
78
- db_runtime: db_runtime
70
+ db_runtime: db_runtime
79
71
  }.reject { |_k, v| v.blank? }
80
72
  end
81
73
 
@@ -91,6 +83,22 @@ module Logged
91
83
  filter: filter
92
84
  }.reject { |_k, v| v.blank? }
93
85
  end
86
+
87
+ def process_action_data(event)
88
+ data = {
89
+ event: event.name
90
+ }
91
+
92
+ payload = event.payload
93
+
94
+ data.merge!(extract_request(payload))
95
+ data.merge!(cached_event_data)
96
+ data.merge!(extract_path(payload))
97
+ data.merge!(extract_status(payload))
98
+ data.merge!(extract_runtimes(payload))
99
+
100
+ data
101
+ end
94
102
  end
95
103
  end
96
104
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logged/log_subscriber/base'
2
4
 
3
5
  module Logged
@@ -49,19 +51,31 @@ module Logged
49
51
  private
50
52
 
51
53
  def extract_mail_deliver(payload)
52
- data = {
53
- mailer: (payload[:mailer] || Thread.current[:logged_action_mailer_process_mailer]),
54
- action: (payload[:action] || Thread.current[:logged_action_mailer_process_action]),
55
- from: Array(payload[:from]).join(', '),
56
- to: Array(payload[:to]).join(', '),
57
- bcc: Array(payload[:bcc]).join(', ')
58
- }
54
+ data = mail_deliver_data(payload)
59
55
 
60
56
  Thread.current[:logged_action_mailer_process_mailer] = nil
61
57
  Thread.current[:logged_action_mailer_process_action] = nil
62
58
 
63
59
  data
64
60
  end
61
+
62
+ def mail_deliver_data(payload)
63
+ {
64
+ mailer: mail_deliver_data_thread_fallback(payload, :mailer),
65
+ action: mail_deliver_data_thread_fallback(payload, :action),
66
+ from: mail_deliver_data_array(payload, :from),
67
+ to: mail_deliver_data_array(payload, :to),
68
+ bcc: mail_deliver_data_array(payload, :bcc)
69
+ }
70
+ end
71
+
72
+ def mail_deliver_data_thread_fallback(payload, key)
73
+ payload[key] || Thread.current["logged_action_mailer_process_#{key}".to_sym]
74
+ end
75
+
76
+ def mail_deliver_data_array(payload, key)
77
+ Array(payload[key]).join(', ')
78
+ end
65
79
  end
66
80
  end
67
81
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'action_view/log_subscriber'
2
4
  require 'logged/log_subscriber/base'
3
5
 
@@ -21,8 +23,8 @@ module Logged
21
23
 
22
24
  debug(event, data)
23
25
  end
24
- alias_method :render_partial, :render_template
25
- alias_method :render_collection, :render_template
26
+ alias render_partial render_template
27
+ alias render_collection render_template
26
28
 
27
29
  protected
28
30
 
@@ -35,7 +37,7 @@ module Logged
35
37
  end
36
38
 
37
39
  def rails_root
38
- @root ||= "#{::Rails.root}/"
40
+ @rails_root ||= "#{::Rails.root}/"
39
41
  end
40
42
  end
41
43
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_record/log_subscriber'
2
4
  require 'logged/log_subscriber/base'
3
5
 
@@ -6,7 +8,7 @@ module Logged
6
8
  # Log subscriber for ActiveRecord events
7
9
  class ActiveRecord < Base
8
10
  # This query types will be ignored
9
- IGNORE_PAYLOAD_NAMES = %w( SCHEMA EXPLAIN )
11
+ IGNORE_PAYLOAD_NAMES = %w[SCHEMA EXPLAIN].freeze
10
12
 
11
13
  component :active_record
12
14
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support/log_subscriber'
2
4
 
3
5
  module Logged
@@ -16,7 +18,7 @@ module Logged
16
18
 
17
19
  private
18
20
 
19
- %w(info debug warn error fatal unknown).each do |level|
21
+ %w[info debug warn error fatal unknown].each do |level|
20
22
  class_eval <<-METHOD, __FILE__, __LINE__ + 1
21
23
  def #{level}(event, progname = nil, &block)
22
24
  return unless logger
@@ -33,7 +35,7 @@ module Logged
33
35
  end
34
36
 
35
37
  def component
36
- self.class.instance_variable_get('@component')
38
+ self.class.instance_variable_get(:@component)
37
39
  end
38
40
 
39
41
  def ignore?(event, log_level = nil)
data/lib/logged/logger.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logger'
2
4
  require 'logged/tagged_logging'
3
5
 
@@ -7,6 +9,7 @@ module Logged
7
9
  include TaggedLogging
8
10
 
9
11
  attr_reader :loggers, :component
12
+ attr_writer :enabled
10
13
 
11
14
  def initialize(loggers, component, formatter)
12
15
  @loggers = loggers
@@ -33,9 +36,9 @@ module Logged
33
36
  add_to_logger(level, event, data, logger, options)
34
37
  end
35
38
  end
36
- alias_method :log, :add
39
+ alias log add
37
40
 
38
- %w(info debug warn error fatal unknown).each do |level|
41
+ %w[info debug warn error fatal unknown].each do |level|
39
42
  class_eval <<-METHOD, __FILE__, __LINE__ + 1
40
43
  def #{level}?
41
44
  @loggers.keys.any? { |l| l.#{level}? }
@@ -48,7 +51,7 @@ module Logged
48
51
  end
49
52
 
50
53
  def close
51
- @loggers.keys.each do |logger|
54
+ @loggers.each_key do |logger|
52
55
  logger.close if logger.respond_to?(:close)
53
56
  end
54
57
  end
@@ -63,10 +66,6 @@ module Logged
63
66
  @enabled
64
67
  end
65
68
 
66
- def enabled=(enable)
67
- @enabled = !!enable
68
- end
69
-
70
69
  def enable!
71
70
  self.enabled = true
72
71
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_support'
2
4
  require 'action_dispatch'
3
5
 
@@ -14,10 +16,10 @@ module Logged
14
16
 
15
17
  request = ActionDispatch::Request.new(env)
16
18
 
17
- if loggers.length > 0
18
- loggers_tagged(loggers, request) { @app.call(env) }
19
- else
19
+ if loggers.empty?
20
20
  @app.call(env)
21
+ else
22
+ loggers_tagged(loggers, request) { @app.call(env) }
21
23
  end
22
24
  ensure
23
25
  Thread.current[:logged_request_env] = nil
@@ -33,10 +35,10 @@ module Logged
33
35
  logger = loggers.shift
34
36
  tags = tags_for_component(logger.component, request)
35
37
 
36
- if loggers.length > 0
37
- tagged_block(logger, tags) { loggers_tagged(loggers, request, &block) }
38
+ if loggers.empty?
39
+ tagged_block(logger, tags, &block)
38
40
  else
39
- tagged_block(logger, tags) { block.call }
41
+ tagged_block(logger, tags) { loggers_tagged(loggers, request, &block) }
40
42
  end
41
43
  end
42
44
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails/railtie'
2
4
  require 'logged/configuration'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Logged
2
4
  # Railtie for logged
3
5
  module Subscriptions
@@ -31,9 +33,7 @@ module Logged
31
33
 
32
34
  events.each do |event|
33
35
  ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener|
34
- if listener.instance_variable_get('@delegate') == subscriber
35
- ActiveSupport::Notifications.unsubscribe listener
36
- end
36
+ ActiveSupport::Notifications.unsubscribe listener if listener.instance_variable_get(:@delegate) == subscriber
37
37
  end
38
38
  end
39
39
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Logged
2
4
  # Tagged logging support
3
5
  module TaggedLogging
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Logged
2
4
  # Version
3
- VERSION = '0.1.1'
5
+ VERSION = '0.3.0'
4
6
  end
data/lib/logged.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logged/version'
2
4
  require 'logged/level_conversion'
3
5
  require 'logged/logger'
@@ -16,7 +18,7 @@ module Logged
16
18
  extend Logged::Subscriptions
17
19
 
18
20
  # special keys which not represent a component
19
- CONFIG_KEYS = Configuration::DEFAULT_VALUES.keys + [:loggers, :disable_rails_logging]
21
+ CONFIG_KEYS = Configuration::DEFAULT_VALUES.keys + %i[loggers disable_rails_logging]
20
22
 
21
23
  mattr_accessor :app, :config
22
24
 
@@ -61,7 +63,7 @@ module Logged
61
63
 
62
64
  @component_loggers[key] = Logger.new(loggers, component, formatter)
63
65
  end
64
- alias_method :'[]', :logger_by_component
66
+ alias [] logger_by_component
65
67
 
66
68
  # loggers for component
67
69
  def loggers_for(component)
data/logged.gemspec CHANGED
@@ -1,17 +1,19 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
3
+
2
4
  lib = File.expand_path('../lib', __FILE__)
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require 'logged/version'
5
7
 
6
8
  Gem::Specification.new do |spec|
7
- rails_version = '>= 4.0', '< 5.1'
9
+ rails_version = '>= 5.0', '< 8.0'
8
10
 
9
11
  spec.name = 'logged'
10
12
  spec.version = Logged::VERSION
11
13
  spec.authors = ['Florian Schwab']
12
14
  spec.email = ['me@ydkn.de']
13
- spec.summary = %q(Better logging for rails)
14
- spec.homepage = 'https://github.com/ydkn/logged'
15
+ spec.summary = 'Better logging for rails'
16
+ spec.homepage = 'https://gitlab.com/ydkn/logged'
15
17
  spec.license = 'MIT'
16
18
 
17
19
  spec.files = `git ls-files -z`.split("\x0")
@@ -19,9 +21,12 @@ Gem::Specification.new do |spec|
19
21
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
22
  spec.require_paths = ['lib']
21
23
 
22
- spec.add_development_dependency 'bundler', '~> 1.12'
23
- spec.add_development_dependency 'rake', '~> 10.5'
24
- spec.add_development_dependency 'rspec', '~> 3.5'
24
+ spec.add_development_dependency 'bundler'
25
+ spec.add_development_dependency 'rake'
26
+ spec.add_development_dependency 'rspec'
27
+ spec.add_development_dependency 'rubocop'
28
+ spec.add_development_dependency 'rubocop-performance'
29
+ spec.add_development_dependency 'rubocop-rails'
25
30
  spec.add_development_dependency 'rails', rails_version
26
31
  spec.add_development_dependency 'actionpack', rails_version
27
32
  spec.add_development_dependency 'actionview', rails_version
data/spec/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in logged.gemspec
6
+ gemspec path: '..'
7
+
8
+ gem 'railties', "~> #{ENV.fetch('RSPEC_RAILS_VERSION')}"