google_logger 1.0.2 → 1.2.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/lib/google_logger/configuration.rb +2 -0
- data/lib/google_logger/json_logger.rb +49 -0
- data/lib/google_logger/params_replacer.rb +3 -1
- data/lib/google_logger/version.rb +2 -2
- data/lib/google_logger.rb +14 -6
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b63f1300144826557fc796374cf5dcd15f608a7ba2044f68d011bbac2b01f88
|
4
|
+
data.tar.gz: cdef99457af4f3bc04c0c1f666f6014736e120d365a6c1d26560d0c5dacb9c1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cd40975a4e1aaa7accbcab858f63176b8edc345214b3a9292af2f244baa42f1e731838d7400a7505bfdce2d4950d5ec3852645ee453fdb4efb13d8c3d66c124
|
7
|
+
data.tar.gz: a8b3b972f21cfb69365b54c186e1135c3b35eb5725f2f00d70b6021df8c40f6b103409d491da9a9fca53bb402914ae5dcd6cb60b059c5df8abc405590aaa4147
|
@@ -12,6 +12,7 @@ module GoogleLogger
|
|
12
12
|
credentials
|
13
13
|
log_locally
|
14
14
|
local_logger
|
15
|
+
backtrace_length
|
15
16
|
])
|
16
17
|
|
17
18
|
# Creates a new instance with default configuration values
|
@@ -22,6 +23,7 @@ module GoogleLogger
|
|
22
23
|
@secret_params = %i[password]
|
23
24
|
@secret_param_value = '<SECRET_PARAM>'
|
24
25
|
@log_locally = false
|
26
|
+
@backtrace_length = 10
|
25
27
|
end
|
26
28
|
|
27
29
|
def validate!
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'logger'
|
4
|
+
|
5
|
+
module GoogleLogger
|
6
|
+
class JsonLogger < ::Logger
|
7
|
+
SEVERITY_MAPPING = {
|
8
|
+
UNKNOWN => :DEFAULT,
|
9
|
+
FATAL => :CRITICAL,
|
10
|
+
ERROR => :ERROR,
|
11
|
+
WARN => :WARNING,
|
12
|
+
INFO => :INFO,
|
13
|
+
DEBUG => :DEBUG
|
14
|
+
}.freeze
|
15
|
+
|
16
|
+
def initialize(default_log_name: 'default')
|
17
|
+
@default_log_name = default_log_name
|
18
|
+
@tagged = nil
|
19
|
+
self.level = DEBUG
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
#
|
25
|
+
# @see Logger#add
|
26
|
+
#
|
27
|
+
def add(severity, message = nil, progname = nil)
|
28
|
+
return true if message.blank? && progname.blank?
|
29
|
+
|
30
|
+
severity ||= UNKNOWN
|
31
|
+
return true if severity < level
|
32
|
+
|
33
|
+
create_formatted_log(severity, message, progname)
|
34
|
+
end
|
35
|
+
|
36
|
+
def create_formatted_log(severity, message = nil, progname = nil)
|
37
|
+
log_name = tagged? ? formatter.current_tags.join('.') : @default_log_name
|
38
|
+
GoogleLogger.create_entry(
|
39
|
+
message || progname,
|
40
|
+
log_name: log_name,
|
41
|
+
severity: SEVERITY_MAPPING.fetch(severity)
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
def tagged?
|
46
|
+
formatter.respond_to?(:current_tags) && formatter.current_tags.any?
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/google_logger.rb
CHANGED
@@ -8,6 +8,7 @@ require 'google_logger/loggers/local_logger'
|
|
8
8
|
require 'google_logger/loggers/base'
|
9
9
|
require 'google_logger/controller_logging'
|
10
10
|
require 'google_logger/params_replacer'
|
11
|
+
require 'google_logger/json_logger'
|
11
12
|
|
12
13
|
# Main module which should serve as an interface to all functionalities
|
13
14
|
module GoogleLogger
|
@@ -60,7 +61,7 @@ module GoogleLogger
|
|
60
61
|
payload = {
|
61
62
|
message: exception.message,
|
62
63
|
exception: exception.class.name,
|
63
|
-
bactrace: exception.backtrace&.first(
|
64
|
+
bactrace: exception.backtrace&.first(configuration.backtrace_length)
|
64
65
|
}
|
65
66
|
|
66
67
|
create_entry(payload, log_name: 'error', severity: :ERROR)
|
@@ -92,11 +93,7 @@ module GoogleLogger
|
|
92
93
|
#
|
93
94
|
# @return [Object] GoogleLogger::Logger by default, local logger if `loc_locally` is set to true
|
94
95
|
def logger
|
95
|
-
|
96
|
-
Loggers::LocalLogger.new
|
97
|
-
else
|
98
|
-
Loggers::CloudLogger.new
|
99
|
-
end
|
96
|
+
configuration.log_locally ? local_logger : cloud_logger
|
100
97
|
end
|
101
98
|
|
102
99
|
# Log gem errors locally if local_logger is present
|
@@ -107,8 +104,19 @@ module GoogleLogger
|
|
107
104
|
local_logger.error "GOOGLE_LOGGER ERROR: #{exception.inspect}" if local_logger.present?
|
108
105
|
end
|
109
106
|
|
107
|
+
# mask secret param values
|
110
108
|
def deep_replace_secret_params(params)
|
111
109
|
ParamsReplacer.deep_replace_secret_params(params)
|
112
110
|
end
|
111
|
+
|
112
|
+
# get a cached instance of a local logger
|
113
|
+
def local_logger
|
114
|
+
@local_logger ||= Loggers::LocalLogger.new
|
115
|
+
end
|
116
|
+
|
117
|
+
# get a cached instance of a cloud logger
|
118
|
+
def cloud_logger
|
119
|
+
@cloud_logger ||= Loggers::CloudLogger.new
|
120
|
+
end
|
113
121
|
end
|
114
122
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Hric
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 5.2.4.5
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: logger
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.5.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.5.1
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: stackdriver
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,6 +64,7 @@ files:
|
|
50
64
|
- lib/google_logger.rb
|
51
65
|
- lib/google_logger/configuration.rb
|
52
66
|
- lib/google_logger/controller_logging.rb
|
67
|
+
- lib/google_logger/json_logger.rb
|
53
68
|
- lib/google_logger/loggers/base.rb
|
54
69
|
- lib/google_logger/loggers/cloud_logger.rb
|
55
70
|
- lib/google_logger/loggers/local_logger.rb
|
@@ -61,11 +76,13 @@ licenses:
|
|
61
76
|
metadata:
|
62
77
|
homepage_uri: https://github.com/panter/google_logger
|
63
78
|
source_code_uri: https://github.com/panter/google_logger
|
79
|
+
rubygems_mfa_required: 'true'
|
64
80
|
post_install_message:
|
65
81
|
rdoc_options: []
|
66
82
|
require_paths:
|
67
83
|
- lib
|
68
84
|
- lib/google_logger
|
85
|
+
- lib/google_logger/json_logger
|
69
86
|
- lib/google_logger/loggers
|
70
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
71
88
|
requirements:
|
@@ -78,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
95
|
- !ruby/object:Gem::Version
|
79
96
|
version: '0'
|
80
97
|
requirements: []
|
81
|
-
rubygems_version: 3.2.
|
98
|
+
rubygems_version: 3.2.3
|
82
99
|
signing_key:
|
83
100
|
specification_version: 4
|
84
101
|
summary: Provides a simple interface to write logs to the google cloud platform.
|