klogger-logger 1.3.2 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -2
- data/VERSION +1 -1
- data/lib/klogger/logger.rb +22 -8
- data/lib/klogger/tagged_logger.rb +56 -0
- data/lib/klogger.rb +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 545977913e2a22754ceaa46726ed6c1ccaa28c4af5ff3bda20ddf76fbf0783ad
|
4
|
+
data.tar.gz: db4cd99e286083d70e768f659cb1446ab4d289a6ed6bbb36ae4f51000771e9ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30e4cb6330c169eea17379c012bca5e0b829fe06a4f2bd4597e5d7cde189c981aa514ce4e891ee7e32dcafc3391d8856db440cf759b8b8769abf51ec890f7d40
|
7
|
+
data.tar.gz: 39ceffeb22baa21c39f3ef2461a3e469535340e77bbb6795d59fc74078db17b813576c2f9a1df42f476e87cd16d6af295e88ecf3e83d6d047cb60accc9a4bc5f
|
data/README.md
CHANGED
@@ -78,7 +78,7 @@ logger.info { "Hello world!" }
|
|
78
78
|
logger.info('Result of 1 + 1') { 1 + 1 } # Logs with a message of "Result: 2"
|
79
79
|
```
|
80
80
|
|
81
|
-
###
|
81
|
+
### Logging exceptions
|
82
82
|
|
83
83
|
Exceptions happen and when they do, you want to know about them. Klogger provides a helper method to log exceptions. These will automatically be logged with the `error` severity.
|
84
84
|
|
@@ -135,7 +135,7 @@ Klogger.group(ip: '1.2.3.4') do
|
|
135
135
|
end
|
136
136
|
|
137
137
|
# If you can't use a block you can manually open and close a group but you'll need to be sure to close it
|
138
|
-
#
|
138
|
+
# when you're finished.
|
139
139
|
group_id = Klogger.global_groups.add(ip: '1.2.3.4')
|
140
140
|
# ... do anything that you want - everything will be tagged as appropriate
|
141
141
|
Klogger.global_groups.pop
|
@@ -149,6 +149,16 @@ logger.tagged(name: 'steve') do
|
|
149
149
|
end
|
150
150
|
```
|
151
151
|
|
152
|
+
### Tagged Loggers
|
153
|
+
|
154
|
+
If you wish to apply tags to a series of log entries but you don't wish to use blocks, you can create a "sub" logger which will always include those tags for all messages sent to it.
|
155
|
+
|
156
|
+
```ruby
|
157
|
+
logger = Klogger.new(:logger)
|
158
|
+
tagged_logger = logger.create_tagged_logger(tag: 'my-tag')
|
159
|
+
tagged_logger.info "Hello world!" # => will be tagged with tag=my-tag
|
160
|
+
```
|
161
|
+
|
152
162
|
### Silencing
|
153
163
|
|
154
164
|
Sometimes you don't want to log for a little while. You can use the `silence` method to temporarily disable logging.
|
@@ -187,4 +197,9 @@ end
|
|
187
197
|
# Create a logger and add the destination
|
188
198
|
logger = Klogger.new(name)
|
189
199
|
logger.add_destination(GraylogDestination.new('graylog.example.com', 12201))
|
200
|
+
|
201
|
+
# If you only want to send certain data to another block, you can do so
|
202
|
+
logger.with_destination(other_destination) do
|
203
|
+
# ...
|
204
|
+
end
|
190
205
|
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.5.0
|
data/lib/klogger/logger.rb
CHANGED
@@ -25,13 +25,18 @@ module Klogger
|
|
25
25
|
go: Formatters::Go
|
26
26
|
}.freeze
|
27
27
|
|
28
|
-
def initialize(name = nil,
|
28
|
+
def initialize(name = nil,
|
29
|
+
destination: $stdout,
|
30
|
+
formatter: :go,
|
31
|
+
highlight: false,
|
32
|
+
include_group_ids: false,
|
29
33
|
tags: {})
|
30
34
|
@name = name
|
31
35
|
@tags = tags
|
32
36
|
@destinations = []
|
33
37
|
@group_set = GroupSet.new
|
34
38
|
@silenced = Concurrent::ThreadLocalVar.new { false }
|
39
|
+
@block_destinations = Concurrent::ThreadLocalVar.new { [] }
|
35
40
|
@include_group_ids = include_group_ids
|
36
41
|
super(destination)
|
37
42
|
self.formatter = FORMATTERS[formatter].new(highlight: highlight)
|
@@ -39,12 +44,10 @@ module Klogger
|
|
39
44
|
|
40
45
|
def exception(exception, message = nil, **tags)
|
41
46
|
error(
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
backtrace: exception.backtrace[0, 4].join("\n")
|
47
|
-
}.merge(tags)
|
47
|
+
message: message,
|
48
|
+
exception: exception.class.name,
|
49
|
+
exception_message: exception.message,
|
50
|
+
backtrace: exception.backtrace[0, 4].join("\n"), **tags
|
48
51
|
)
|
49
52
|
end
|
50
53
|
|
@@ -96,6 +99,17 @@ module Klogger
|
|
96
99
|
@destinations.delete(destination)
|
97
100
|
end
|
98
101
|
|
102
|
+
def with_destination(destination)
|
103
|
+
@block_destinations.value << destination
|
104
|
+
yield
|
105
|
+
ensure
|
106
|
+
@block_destinations.value.delete(destination)
|
107
|
+
end
|
108
|
+
|
109
|
+
def create_tagged_logger(**tags)
|
110
|
+
TaggedLogger.new(self, **tags)
|
111
|
+
end
|
112
|
+
|
99
113
|
private
|
100
114
|
|
101
115
|
def add(severity, message = nil, progname = nil, **tags, &block)
|
@@ -136,7 +150,7 @@ module Klogger
|
|
136
150
|
end
|
137
151
|
|
138
152
|
def call_destinations(payload, group_ids)
|
139
|
-
@destinations.each do |destination|
|
153
|
+
(@destinations + @block_destinations.value).each do |destination|
|
140
154
|
destination.call(self, payload.dup, group_ids)
|
141
155
|
rescue StandardError => e
|
142
156
|
# If something goes wrong in here, we don't want to break the application
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'klogger/logger'
|
4
|
+
|
5
|
+
module Klogger
|
6
|
+
class TaggedLogger
|
7
|
+
|
8
|
+
def initialize(parent, **tags)
|
9
|
+
@parent = parent
|
10
|
+
@tags = tags
|
11
|
+
end
|
12
|
+
|
13
|
+
Klogger::Logger::LEVELS.each do |level|
|
14
|
+
define_method(level) do |message = nil, progname = nil, **tags, &block|
|
15
|
+
@parent.public_send(level, message, progname, **@tags.merge(tags), &block)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def exception(exception, message = nil, **tags)
|
20
|
+
@parent.exception(exception, message, **@tags.merge(tags))
|
21
|
+
end
|
22
|
+
|
23
|
+
def group(**tags, &block)
|
24
|
+
@parent.group(**@tags.merge(tags), &block)
|
25
|
+
end
|
26
|
+
|
27
|
+
def add_group(**tags)
|
28
|
+
@parent.add_group(**@tags.merge(tags))
|
29
|
+
end
|
30
|
+
|
31
|
+
def pop_group
|
32
|
+
@parent.pop_group
|
33
|
+
end
|
34
|
+
|
35
|
+
def tagged(**tags, &block)
|
36
|
+
@parent.tagged(**@tags.merge(tags), &block)
|
37
|
+
end
|
38
|
+
|
39
|
+
def silence!(&block)
|
40
|
+
@parent.silence!(&block)
|
41
|
+
end
|
42
|
+
|
43
|
+
def unsilence!(&block)
|
44
|
+
@parent.unsilence!(&block)
|
45
|
+
end
|
46
|
+
|
47
|
+
def silenced?
|
48
|
+
@parent.silenced?
|
49
|
+
end
|
50
|
+
|
51
|
+
def create_tagged_logger(**tags)
|
52
|
+
@parent.create_tagged_logger(**@tags.merge(tags))
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
data/lib/klogger.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: klogger-logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Cooke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- lib/klogger/group_set.rb
|
85
85
|
- lib/klogger/json_highlighter.rb
|
86
86
|
- lib/klogger/logger.rb
|
87
|
+
- lib/klogger/tagged_logger.rb
|
87
88
|
- lib/klogger/version.rb
|
88
89
|
homepage: https://github.com/krystal/klogger
|
89
90
|
licenses:
|
@@ -104,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
105
|
- !ruby/object:Gem::Version
|
105
106
|
version: '0'
|
106
107
|
requirements: []
|
107
|
-
rubygems_version: 3.3.
|
108
|
+
rubygems_version: 3.3.27
|
108
109
|
signing_key:
|
109
110
|
specification_version: 4
|
110
111
|
summary: A simple Ruby logger
|