testa_logger 0.1.11 → 0.1.12
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/Gemfile.lock +1 -1
- data/lib/testa_logger/logger/dispatcher.rb +22 -9
- data/lib/testa_logger/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: 1814a8963c804133272adbfcd17259835408297c26337d01f4a971f20d55bc4d
|
4
|
+
data.tar.gz: bb298ffa5e0ba63e1c74264713197284447485e60581a64c76918569f6c7f181
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ee138ceee7e90af996de3d03cfdc7de16079fbc87b13e6d328b124b49f48690722aa74b1bb723f8fe8e6bc725a51ff6a3c4f618fd645261bb1d144cd4ec9b15
|
7
|
+
data.tar.gz: ac06a5dc93d92841c4729f8885d97f6f90596d89f68f254c40ae4c1a8c7abb8d019e24ce91d1a65e7f05ac84c00f865bbbd7fb04142036eb2f6b4a839df4582c
|
data/Gemfile.lock
CHANGED
@@ -1,17 +1,26 @@
|
|
1
1
|
module TestaLogger
|
2
2
|
class Logger
|
3
3
|
class Dispatcher
|
4
|
-
|
4
|
+
TAG = "Logger::Dispatcher"
|
5
|
+
|
6
|
+
# @return [Logger]
|
7
|
+
attr_accessor :logger
|
8
|
+
|
9
|
+
def initialize(logger, faye_url, faye_token)
|
10
|
+
@logger = logger
|
5
11
|
@uri = URI.parse(faye_url)
|
6
12
|
@faye_token = faye_token
|
7
|
-
@channel = "/logs/live/#{app}/#{group}"
|
8
|
-
@channel += "/#{subgroup}" unless subgroup.nil?
|
13
|
+
@channel = "/logs/live/#{logger.app}/#{logger.group}"
|
14
|
+
@channel += "/#{logger.subgroup}" unless logger.subgroup.nil?
|
9
15
|
@outbox = Concurrent::Array.new
|
10
16
|
run_dispatch_thread
|
11
17
|
at_exit { dispatch }
|
12
18
|
end
|
13
19
|
|
14
20
|
def push(level, time, tag, formatted_text)
|
21
|
+
# after forking process, dispatch thread will stop working in the forked process
|
22
|
+
run_dispatch_thread if @dispatch_thread.nil? || @dispatch_thread.status == false
|
23
|
+
|
15
24
|
data = {
|
16
25
|
level: level,
|
17
26
|
time: time,
|
@@ -22,18 +31,22 @@ module TestaLogger
|
|
22
31
|
end
|
23
32
|
|
24
33
|
def run_dispatch_thread
|
25
|
-
Thread.new do
|
34
|
+
@dispatch_thread = Thread.new do
|
26
35
|
max_delay = 0.5
|
27
36
|
max_buffer = 20
|
28
37
|
last_sent = Time.now.to_f
|
29
38
|
loop do
|
30
|
-
|
31
|
-
|
39
|
+
begin # rubocop:disable Style/RedundantBegin
|
40
|
+
sleep 0.1
|
41
|
+
next unless (last_sent + max_delay < Time.now.to_f) || @outbox.count > max_buffer
|
32
42
|
|
33
|
-
|
34
|
-
|
43
|
+
last_sent = Time.now.to_f
|
44
|
+
next if @outbox.count.zero?
|
35
45
|
|
36
|
-
|
46
|
+
dispatch
|
47
|
+
rescue StandardError => e
|
48
|
+
logger.error(TAG, e)
|
49
|
+
end
|
37
50
|
end
|
38
51
|
end
|
39
52
|
end
|
data/lib/testa_logger/version.rb
CHANGED