any_logger 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b26a8df3ee6ce7ee55d83fc442b93692952e9f5b5d91cd47dbaf0c44ce9fcd0f
4
- data.tar.gz: e3dbad423f82581ac1051103a82d0ba1eef69418351c7c916ec13375585ae5d4
3
+ metadata.gz: de56cdda136e683ae52ee87f6a0cb802792f1e3aa1c6e946ade58b6dde832664
4
+ data.tar.gz: 9760f9c169b6d1f721e353d2a995b3da7ed07218cfd3f9d7ff1d7f7bd58417cf
5
5
  SHA512:
6
- metadata.gz: 20defb8b3a5791d1e691f85bc9bd0774b013cbd43bb473b463ab0e03250cb4d5149e27ebb31f2b9f4a5a96440dfc25e13cfe0bfb8e008cc4268732b12df0e4d8
7
- data.tar.gz: 7f18668828179449c462dd18a23fe60357ef0e314026faaccb6939e3c54f68d7d0b959dea66d2055713fde2e41bf655e2ea920afa5b8bef313050ad3d6b79670
6
+ metadata.gz: c3f6346e9da6a573bddc918a41195a7827c9d34086c3ab1a5b47290017615ef1c5d182968ee06a94d8eab2b31d672533cf7166fb7109849d327a7e39e5455dfb
7
+ data.tar.gz: de5672b026af7fbf51619d947e72ca52495781fc39397c559b10ca467227fb3811e61555eac684310b219e1628007dea3220f19ae0f5571e44cfeb46266723b6
data/.rubocop.yml CHANGED
@@ -27,3 +27,9 @@ Style/RegexpLiteral:
27
27
 
28
28
  Bundler/OrderedGems:
29
29
  Enabled: false
30
+
31
+ Metrics/AbcSize:
32
+ Enabled: false
33
+
34
+ Metrics/MethodLength:
35
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -7,3 +7,11 @@
7
7
  ## [0.1.2] - 2025-01-14
8
8
 
9
9
  - detach, attach, swapが正常に動作していなかったのを修正
10
+
11
+ ## [0.1.3] - 2025-01-15
12
+
13
+ - AnyLogger.startをデフォルトで不要に変更
14
+
15
+ ## [0.1.4] - 2025-01-15
16
+
17
+ - Example::ControllerSubscriberのログの改行位置がおかしかったのを修正
data/README.md CHANGED
@@ -1,19 +1,18 @@
1
1
  # AnyLogger
2
2
 
3
- Easier to change LogSubscribers in rails.
3
+ A DSL for simplifying modification of Rails LogSubscribers
4
4
 
5
5
  ### Example
6
6
 
7
7
  ```ruby
8
+ # initializers/any_logger.rb
8
9
  require "any_logger"
9
10
  require "any_logger/example/controller_subscriber"
10
11
 
11
12
  AnyLogger.configure do |config|
12
13
  config.logger = Rails::Rack::Logger # default: AnyLogger::Example::RackLogger
13
14
  config.swap :action_controller, AnyLogger::Example::ControllerSubscriber
14
- config.detach :active_record
15
+ config.detach :action_view
15
16
  config.attach :active_record, MyLogger::ModelSubscriber
16
17
  end
17
-
18
- AnyLogger.start
19
18
  ```
@@ -28,65 +28,44 @@ module AnyLogger
28
28
  # params: {"foo" => "bar"}
29
29
  # redirect: "/fuga"
30
30
  private def formatted_message
31
- <<~MESSAGE
32
-
33
- #{l_method} #{l_action} #{l_for} #{l_at}
34
- #{l_path}
35
- #{l_status} #{l_duration} (#{l_view_runtime} | #{l_db_runtime})
36
- #{"#{l_params}\n" if @payload[:params].present?}#{l_redirect if @headers[:location].present?}
37
- MESSAGE
31
+ e = formatted_log_details
32
+ # ヒアドキュメントだとparamsとredirectの有無で改行の入り方が変わってしまうので、配列を結合する方法を採用
33
+ lines = []
34
+ lines << ""
35
+ lines << "[#{e[:method]}] #{e[:controller]}##{e[:action]} for: #{e[:ip]} at: #{e[:datetime]}"
36
+ lines << " 🔍 path: \"#{e[:path]}\""
37
+ lines << " 🧱 status: #{e[:status]} in #{e[:duration]}ms " \
38
+ "(view: #{e[:view_runtime]}ms | db: #{e[:db_runtime]}ms)"
39
+ lines << " 📝 params: #{e[:params]}" if @payload[:params].present?
40
+ lines << " 🚀 redirect: \"#{e[:redirect_to]}\"" if @headers[:location].present?
41
+ lines.join("\n")
38
42
  end
39
43
 
40
44
  private def match_unnecessary_path?
41
45
  UNNECESSARY_PATHS.include?(@payload[:path])
42
46
  end
43
47
 
44
- private def l_method
45
- "[#{@payload[:method].upcase}]"
46
- end
47
-
48
- private def l_action
49
- "#{@payload[:controller]}##{@payload[:action]}"
50
- end
51
-
52
- private def l_for
53
- "for: #{@payload[:request].remote_ip}"
54
- end
55
-
56
- private def l_at
57
- "at: #{conversion_event_time_to_datetime}"
58
- end
59
-
60
- private def l_path
61
- "🔍 path: \"#{@payload[:path]}\""
62
- end
63
-
64
- private def l_status
65
- "🧱 status: #{@payload[:status]}"
66
- end
67
-
68
- private def l_duration
69
- "in #{@event.duration&.round(2) || 0}ms"
70
- end
71
-
72
- private def l_view_runtime
73
- "view: #{@payload[:view_runtime]&.round(2) || 0}ms"
74
- end
75
-
76
- private def l_db_runtime
77
- "db: #{@payload[:db_runtime]&.round(2) || 0}ms"
78
- end
79
-
80
- private def l_params
81
- @payload[:params] = except_unnecessary_params
82
- "📝 params: #{@payload[:params]&.inspect || {}}"
83
- end
84
-
85
- private def l_redirect
48
+ private def formatted_log_details
49
+ {
50
+ method: @payload[:method].upcase,
51
+ controller: @payload[:controller],
52
+ action: @payload[:action],
53
+ ip: @payload[:request].remote_ip,
54
+ datetime: conversion_event_time_to_datetime,
55
+ path: @payload[:path],
56
+ status: @payload[:status],
57
+ duration: round_value(@event.duration),
58
+ view_runtime: round_value(@payload[:view_runtime]),
59
+ db_runtime: round_value(@payload[:db_runtime]),
60
+ params: expect_unnecessary_params || {},
61
+ redirect_to: formatted_redirect_location
62
+ }
63
+ end
64
+
65
+ private def formatted_redirect_location
86
66
  return unless REDIRECT_CODES.any? { @payload[:status] == Rack::Utils.status_code(it) }
87
67
 
88
- ellipsised_url = ellipsis_scheme_and_authority(@headers[:location])
89
- "🚀 redirect: \"#{ellipsised_url}\""
68
+ ellipsis_scheme_and_authority(@headers[:location])
90
69
  end
91
70
 
92
71
  private def conversion_event_time_to_datetime
@@ -97,6 +76,10 @@ module AnyLogger
97
76
  Time.at((now - elapsed).to_i)
98
77
  end
99
78
 
79
+ private def round_value(value)
80
+ value&.round(2) || 0
81
+ end
82
+
100
83
  private def except_unnecessary_params
101
84
  @payload[:params].except("controller", "action")
102
85
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AnyLogger
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.4"
5
5
  end
data/lib/any_logger.rb CHANGED
@@ -3,8 +3,9 @@ require_relative "any_logger/configuration"
3
3
  require_relative "any_logger/initializer"
4
4
 
5
5
  module AnyLogger
6
- def self.configure(&block)
6
+ def self.configure(auto_startable: true, &block)
7
7
  block.call(config)
8
+ start if auto_startable
8
9
  end
9
10
 
10
11
  def self.start
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: any_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - milkeclair
@@ -93,7 +93,7 @@ dependencies:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
- description: easy swap for LogSubscribers in rails
96
+ description: A DSL for simplifying modification of Rails LogSubscribers
97
97
  email:
98
98
  - milkeclair.black@gmail.com
99
99
  executables: []
@@ -135,5 +135,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
135
  requirements: []
136
136
  rubygems_version: 3.6.2
137
137
  specification_version: 4
138
- summary: easy swap for LogSubscribers in rails
138
+ summary: A DSL for simplifying modification of Rails LogSubscribers
139
139
  test_files: []