grpc_interceptors 0.2.1 → 0.2.2.rc1
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/grpc_interceptors/common/logging.rb +29 -3
- metadata +16 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7d3e0f698d59a4a8427356e2581d63cc0d1caa54581e58ee48d3614f0a3c1b21
|
|
4
|
+
data.tar.gz: 457f47fb4eb8a2c2918dac9cade910849b1de2a1a77ab398ee293ac91c4c03f8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f04eb0f20362428f5b20b52fffd2b384520667096f891963b11c11154dad8a6c2e9516bc2014586187ddfdb205b7a97a92132f6f0cea62e4b37a09e758cc97c0
|
|
7
|
+
data.tar.gz: e9ee7ed6d174803126f2bd7c10c4aa98e4e3a55d9d055f821158a424e6006a71706c49d53abe8cb83919af8b9938bf005e28498e9d51a6ee7bcb7fedf85c85be
|
|
@@ -1,8 +1,33 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'logger'
|
|
4
|
+
|
|
3
5
|
module GrpcInterceptors
|
|
4
6
|
module Common
|
|
5
7
|
module Logging
|
|
8
|
+
SYMBOL_TO_SEVERITY = {
|
|
9
|
+
trace: ::Logger::Severity::DEBUG,
|
|
10
|
+
debug: ::Logger::Severity::DEBUG,
|
|
11
|
+
info: ::Logger::Severity::INFO,
|
|
12
|
+
warn: ::Logger::Severity::WARN,
|
|
13
|
+
error: ::Logger::Severity::ERROR,
|
|
14
|
+
fatal: ::Logger::Severity::FATAL
|
|
15
|
+
}.freeze
|
|
16
|
+
|
|
17
|
+
# Some logger implementations (e.g. SemanticLogger-backed CasinoLogger)
|
|
18
|
+
# expose #level as a Symbol rather than the ::Logger::Severity Integer
|
|
19
|
+
# constants this module compares against. Normalize here so any logger
|
|
20
|
+
# duck-typed with #level/#info/#debug works without a per-service wrapper.
|
|
21
|
+
def self.normalized_level(logger)
|
|
22
|
+
raw = logger.respond_to?(:level) ? logger.level : ::Logger::Severity::INFO
|
|
23
|
+
|
|
24
|
+
case raw
|
|
25
|
+
when Integer then raw
|
|
26
|
+
when Symbol then SYMBOL_TO_SEVERITY.fetch(raw, ::Logger::Severity::INFO)
|
|
27
|
+
else ::Logger::Severity::INFO
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
6
31
|
def self.yield_and_log(
|
|
7
32
|
logger: nil, request: nil, method: nil, method_type: nil, kind: nil
|
|
8
33
|
)
|
|
@@ -21,7 +46,7 @@ module GrpcInterceptors
|
|
|
21
46
|
extra_fields ||= {}
|
|
22
47
|
extra_fields['grpc.code'] = grpc_code
|
|
23
48
|
|
|
24
|
-
if logger
|
|
49
|
+
if normalized_level(logger) == ::Logger::Severity::DEBUG && !response.nil? && !response.is_a?(Enumerator)
|
|
25
50
|
extra_fields['response'] = Common::GrpcHelper.proto_to_h(response)
|
|
26
51
|
end
|
|
27
52
|
|
|
@@ -49,9 +74,10 @@ module GrpcInterceptors
|
|
|
49
74
|
payload = build_payload(method, method_type, kind)
|
|
50
75
|
payload.merge!(extra_fields)
|
|
51
76
|
|
|
52
|
-
|
|
77
|
+
level = normalized_level(logger)
|
|
78
|
+
if level == ::Logger::Severity::INFO
|
|
53
79
|
logger.info(payload)
|
|
54
|
-
elsif
|
|
80
|
+
elsif level == ::Logger::Severity::DEBUG
|
|
55
81
|
payload['request'] = Common::GrpcHelper.proto_to_h(request) unless request.nil?
|
|
56
82
|
logger.debug(payload)
|
|
57
83
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: grpc_interceptors
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- michal-kazmierczak
|
|
@@ -66,6 +66,20 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '2.4'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: logger
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '1.7'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '1.7'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: minitest
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -287,7 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
287
301
|
- !ruby/object:Gem::Version
|
|
288
302
|
version: '0'
|
|
289
303
|
requirements: []
|
|
290
|
-
rubygems_version:
|
|
304
|
+
rubygems_version: 4.0.10
|
|
291
305
|
specification_version: 4
|
|
292
306
|
summary: A collection of Ruby interceptors (middlewares) for gRPC servers and clients.
|
|
293
307
|
test_files: []
|