logtail 0.1.10 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +18 -12
- data/example-project/Gemfile +1 -1
- data/example-project/Gemfile.lock +2 -2
- data/example-project/main.rb +6 -0
- data/lib/logtail/config.rb +22 -0
- data/lib/logtail/log_devices/http.rb +2 -0
- data/lib/logtail/logger.rb +3 -3
- data/lib/logtail/version.rb +1 -1
- data/logtail.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a6b0738bfe520cbd3e443365dff1cb77b6e2ae2849799badf8d47f785df52d4
|
4
|
+
data.tar.gz: ba02074bd5ee3e2ced09e286712c2af97b6b78175e06d372c50e4bc1a158d114
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f1f0865055d6f29eff1d251e8f4b13609ce3306ae2b2e72bd38afb44294c28d562ec7ee3aac74a4fd9ad386c302743d5a9c929741c511401afd50f8e59638ff
|
7
|
+
data.tar.gz: c95ee4374d040f864130b6f5ed0fc4f732e94e6d9b17b64c6579cea8fad59f1710b422a878b6bd798cf09b9d773ef0f3a86e609ac597c87d3c3b3c7ae77e2f1f
|
data/.github/workflows/main.yml
CHANGED
@@ -1,26 +1,32 @@
|
|
1
1
|
name: build
|
2
2
|
|
3
|
-
on:
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
schedule:
|
6
|
+
- cron: '20 5 * * 1'
|
7
|
+
workflow_dispatch:
|
4
8
|
|
5
9
|
jobs:
|
6
10
|
test:
|
7
|
-
|
8
11
|
runs-on: ubuntu-20.04
|
9
12
|
|
10
13
|
strategy:
|
14
|
+
fail-fast: false
|
15
|
+
|
11
16
|
matrix:
|
12
17
|
ruby-version:
|
13
|
-
- 3.2
|
14
|
-
- 3.1
|
15
|
-
- 3.0
|
16
|
-
- 2.7
|
17
|
-
- 2.6
|
18
|
-
- 2.5
|
19
|
-
- 2.4
|
20
|
-
- 2.3
|
21
|
-
-
|
18
|
+
- 3.2
|
19
|
+
- 3.1
|
20
|
+
- 3.0
|
21
|
+
- 2.7
|
22
|
+
- 2.6
|
23
|
+
- 2.5
|
24
|
+
- 2.4
|
25
|
+
- 2.3
|
26
|
+
- jruby-9.4.3.0
|
22
27
|
- jruby-9.2.14.0
|
23
|
-
- truffleruby-
|
28
|
+
- truffleruby-23.0.0
|
29
|
+
- truffleruby-22.1.0
|
24
30
|
|
25
31
|
steps:
|
26
32
|
- uses: actions/checkout@v2
|
data/example-project/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
-
gem "logtail"
|
2
|
+
gem "logtail", "~> 0.1.12"
|
data/example-project/main.rb
CHANGED
@@ -15,6 +15,9 @@ end
|
|
15
15
|
http_device = Logtail::LogDevices::HTTP.new(ARGV[0])
|
16
16
|
logger = Logtail::Logger.new(http_device)
|
17
17
|
|
18
|
+
# Filter logs that shouldn't be sent to Better Stack, see {Logtail::LogEntry} for available attributes
|
19
|
+
Logtail.config.filter_sent_to_better_stack { |log_entry| log_entry.message.include?("DO_NOT_SEND") }
|
20
|
+
|
18
21
|
# LOGGING
|
19
22
|
|
20
23
|
# Send debug logs messages using the debug() method
|
@@ -33,6 +36,9 @@ logger.warn(
|
|
33
36
|
}
|
34
37
|
)
|
35
38
|
|
39
|
+
# Some messages can be filtered, see {Logtail::Config#filter_sent_to_better_stack} call above
|
40
|
+
logger.info("This message will not be sent to Better Stack because it contains 'DO_NOT_SEND'")
|
41
|
+
|
36
42
|
# Send error messages using the error() method
|
37
43
|
logger.error("Oops! An error occurred!")
|
38
44
|
|
data/lib/logtail/config.rb
CHANGED
@@ -32,6 +32,28 @@ module Logtail
|
|
32
32
|
|
33
33
|
attr_writer :http_body_limit
|
34
34
|
|
35
|
+
# Whether a particular {Logtail::LogEntry} should be sent to Better Stack
|
36
|
+
def send_to_better_stack?(log_entry)
|
37
|
+
!@better_stack_filters&.any? { |blocker| blocker.call(log_entry) }
|
38
|
+
rescue => e
|
39
|
+
debug { "Could not determine whether to send LogEntry to Better Stack (assumed yes): #{e}" }
|
40
|
+
true
|
41
|
+
end
|
42
|
+
|
43
|
+
# This allows filtering logs that are sent to Better Stack. Can be called multiple times, all filters will
|
44
|
+
# be applied. If the passed block RETURNS TRUE for a particular LogEntry, it WILL NOT BE SENT to Better Stack.
|
45
|
+
#
|
46
|
+
# See {Logtail::LogEntry} for available attributes of the block parameter.
|
47
|
+
#
|
48
|
+
# @example Rails
|
49
|
+
# config.logtail.filter_sent_to_better_stack { |log_entry| log_entry.context_snapshot[:http][:path].start_with?('_') }
|
50
|
+
# @example Everything else
|
51
|
+
# Logtail.config.filter_sent_to_better_stack { |log_entry| log_entry.message.include?('IGNORE') }
|
52
|
+
def filter_sent_to_better_stack(&block)
|
53
|
+
@better_stack_filters ||= []
|
54
|
+
@better_stack_filters << -> (log_entry) { yield(log_entry) }
|
55
|
+
end
|
56
|
+
|
35
57
|
# Convenience method for logging debug statements to the debug logger
|
36
58
|
# set in this class.
|
37
59
|
# @private
|
@@ -89,6 +89,8 @@ module Logtail
|
|
89
89
|
# size is constricted by the Logtail API. The actual application limit is a multiple
|
90
90
|
# of this. Hence the `@request_queue`.
|
91
91
|
def write(msg)
|
92
|
+
return unless Logtail.config.send_to_better_stack?(msg)
|
93
|
+
|
92
94
|
@msg_queue.enq(msg)
|
93
95
|
|
94
96
|
# Lazily start flush threads to ensure threads are alive after forking processes.
|
data/lib/logtail/logger.rb
CHANGED
@@ -57,11 +57,11 @@ module Logtail
|
|
57
57
|
|
58
58
|
# Because of all the crazy ways Rails has attempted tags, we need this crazy method.
|
59
59
|
def extract_active_support_tagged_logging_tags
|
60
|
-
if defined?(
|
61
|
-
|
60
|
+
if defined?(current_tags)
|
61
|
+
return current_tags
|
62
62
|
end
|
63
63
|
|
64
|
-
|
64
|
+
defined?(ActiveSupport::IsolatedExecutionState) && ActiveSupport::IsolatedExecutionState[tagged_logging_object_key_name] ||
|
65
65
|
Thread.current[:activesupport_tagged_logging_tags] ||
|
66
66
|
Thread.current[tagged_logging_object_key_name] ||
|
67
67
|
EMPTY_ARRAY
|
data/lib/logtail/version.rb
CHANGED
data/logtail.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.metadata["homepage_uri"] = spec.homepage
|
19
19
|
spec.metadata["source_code_uri"] = spec.homepage
|
20
20
|
|
21
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
21
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3")
|
22
22
|
|
23
23
|
spec.files = `git ls-files`.split("\n")
|
24
24
|
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logtail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Better Stack
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|
@@ -216,7 +216,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
216
216
|
requirements:
|
217
217
|
- - ">="
|
218
218
|
- !ruby/object:Gem::Version
|
219
|
-
version: 2.
|
219
|
+
version: '2.3'
|
220
220
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
221
|
requirements:
|
222
222
|
- - ">="
|