loggun 0.5.0 → 0.5.1
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/CHANGELOG.md +4 -0
- data/README.md +15 -1
- data/lib/loggun/formatter.rb +32 -21
- data/lib/loggun/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51f8b307222f4c0cd6a68a2e1190c505dfb85c98916e8bef75f8353308d6066e
|
4
|
+
data.tar.gz: a967d678e0ca4e52f7dc2f4387d2d04fe7097f10eb0cbfaccfe9c41d6c2de809
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29b945bd8b60102ba564177193321458adc9226d6c5eb541be5e8ba06a591d9cef305d2a3c45180c011580b31acb78c6687b87941951268e35525bc5af110311
|
7
|
+
data.tar.gz: 18894d7473ac6a2700b96e61a1d3f2d5c4ff152546f464d1663b2aa891a6fb559856a99a1fe0b2205cdb83457818091f391ac2e137e9e6027cc72eb6b59b0bc5
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -108,11 +108,25 @@ end
|
|
108
108
|
|
109
109
|
Доступные значения:
|
110
110
|
|
111
|
-
- `:json` — лог формируется как JSON-строка игнорируя шаблон `pattern`;
|
111
|
+
- `:json` — лог формируется как JSON-строка игнорируя шаблон `pattern` и настройку `message_format`;
|
112
112
|
- `:plain` — лог формируется по шаблону `pattern`.
|
113
113
|
|
114
114
|
По умолчанию `:plain`.
|
115
115
|
|
116
|
+
При `log_format == :json` в `message` будет попадать только сообщение, которое было передано строкой. Сообщение,
|
117
|
+
переданное хешем попадет в поле `metadata`. Пример:
|
118
|
+
```ruby
|
119
|
+
Loggun.info("my.best.action", "message string", test: true)
|
120
|
+
# {
|
121
|
+
# "metadata":{"test":true},
|
122
|
+
# "message":"message string",
|
123
|
+
# "type":"my.best.action",
|
124
|
+
# "timestamp":"2020-09-22T14:57:22.233+03:00",
|
125
|
+
# "severity":"INFO",
|
126
|
+
# ...
|
127
|
+
# }
|
128
|
+
```
|
129
|
+
|
116
130
|
- `exclude_keys` — список ключей, которые будут исключены из лога.
|
117
131
|
|
118
132
|
Используется, если `log_format` имеет значение `:json` и список `only_keys` пуст.
|
data/lib/loggun/formatter.rb
CHANGED
@@ -8,30 +8,21 @@ module Loggun
|
|
8
8
|
def call(severity, time, _program_name, message, loggun_type: nil)
|
9
9
|
data = Hash.new(DEFAULT_VALUE)
|
10
10
|
time = time.utc if config.force_utc
|
11
|
-
|
11
|
+
|
12
|
+
process_message(data, message)
|
13
|
+
|
14
|
+
data[:type] = loggun_type || Loggun.type || DEFAULT_VALUE.dup
|
12
15
|
|
13
16
|
data[:timestamp] = time.iso8601(config.timestamp_precision)
|
14
17
|
data[:time] = data[:timestamp] if config.log_format == :plain
|
15
|
-
|
16
|
-
data[:message] = message
|
18
|
+
|
17
19
|
data[:severity] = severity&.to_s || 'INFO'
|
20
|
+
data[:pid] = Process.pid
|
18
21
|
data[:tags_text] = tags_text
|
19
|
-
data[:type] = loggun_type || Loggun.type || DEFAULT_VALUE.dup
|
20
22
|
data[:transaction_id] = Loggun.transaction_id
|
21
23
|
data[:parent_transaction] = parent_transaction if parent_transaction
|
22
24
|
|
23
|
-
|
24
|
-
data[:transaction_id].to_i != Process.pid
|
25
|
-
data[:type] = "#{data[:type]}##{data[:transaction_id]}"
|
26
|
-
end
|
27
|
-
|
28
|
-
if config.log_format == :json
|
29
|
-
data.except!(*config.exclude_keys) if config.only_keys.empty?
|
30
|
-
data.slice!(*config.only_keys) if config.only_keys.any?
|
31
|
-
JSON.generate(data) + "\n"
|
32
|
-
else
|
33
|
-
format(config.pattern + "\n", data)
|
34
|
-
end
|
25
|
+
prepare_to_output(data)
|
35
26
|
end
|
36
27
|
|
37
28
|
def tagged(*tags)
|
@@ -71,18 +62,38 @@ module Loggun
|
|
71
62
|
|
72
63
|
private
|
73
64
|
|
74
|
-
def
|
65
|
+
def process_message(data, message)
|
75
66
|
if message.is_a?(Hash)
|
76
67
|
if config.parent_transaction_to_message && parent_transaction
|
77
68
|
message[:parent_transaction] = parent_transaction
|
78
69
|
end
|
79
|
-
|
70
|
+
|
71
|
+
if config.log_format == :plain
|
72
|
+
message = format_message(message)
|
73
|
+
else
|
74
|
+
simple_message = message.delete(:message)
|
75
|
+
data[:metadata] = message if message != {}
|
76
|
+
message = simple_message
|
77
|
+
end
|
80
78
|
end
|
81
79
|
|
82
|
-
if config.log_format == :plain
|
83
|
-
|
80
|
+
message = message.to_s.tr("\r\n", ' ').strip if config.log_format == :plain
|
81
|
+
|
82
|
+
data[:message] = message
|
83
|
+
end
|
84
|
+
|
85
|
+
def prepare_to_output(data)
|
86
|
+
if data[:transaction_id] && data[:type] != DEFAULT_VALUE &&
|
87
|
+
data[:transaction_id].to_i != Process.pid
|
88
|
+
data[:type] = "#{data[:type]}##{data[:transaction_id]}"
|
89
|
+
end
|
90
|
+
|
91
|
+
if config.log_format == :json
|
92
|
+
data.except!(*config.exclude_keys) if config.only_keys.empty?
|
93
|
+
data.slice!(*config.only_keys) if config.only_keys.any?
|
94
|
+
JSON.generate(data) + "\n"
|
84
95
|
else
|
85
|
-
|
96
|
+
format(config.pattern + "\n", data)
|
86
97
|
end
|
87
98
|
end
|
88
99
|
|
data/lib/loggun/version.rb
CHANGED