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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9abd8b05802cd093378bdd4e006bb8a9483f38039f4deea5d3724d59ad3934f3
4
- data.tar.gz: 59eb5fbf5b3c2cae7af56fdc757e73836309d70342e0f76dc3bd1478efa828e3
3
+ metadata.gz: 1814a8963c804133272adbfcd17259835408297c26337d01f4a971f20d55bc4d
4
+ data.tar.gz: bb298ffa5e0ba63e1c74264713197284447485e60581a64c76918569f6c7f181
5
5
  SHA512:
6
- metadata.gz: 32b30e0f1d8be82ced9a9d0e850fc1b54bae7cf19efc8c47d3d930ba899cec59ae8b14ea454f46f15f5a3a6f4c1c4dd9552ee98eb627356836c1904d54647536
7
- data.tar.gz: b1eb6bca379197c63b1e6360dd9a3ffd29f3381e88b2f9883fc74bba4985ca144332223c74aae47d6955069b854c287824583ae6c9e3876e61f563a78bf33811
6
+ metadata.gz: 2ee138ceee7e90af996de3d03cfdc7de16079fbc87b13e6d328b124b49f48690722aa74b1bb723f8fe8e6bc725a51ff6a3c4f618fd645261bb1d144cd4ec9b15
7
+ data.tar.gz: ac06a5dc93d92841c4729f8885d97f6f90596d89f68f254c40ae4c1a8c7abb8d019e24ce91d1a65e7f05ac84c00f865bbbd7fb04142036eb2f6b4a839df4582c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- testa_logger (0.1.11)
4
+ testa_logger (0.1.12)
5
5
  activesupport
6
6
  awesome_print
7
7
  aws-sdk-s3
@@ -1,17 +1,26 @@
1
1
  module TestaLogger
2
2
  class Logger
3
3
  class Dispatcher
4
- def initialize(faye_url, faye_token, app, group, subgroup = nil)
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
- sleep 0.1
31
- next unless (last_sent + max_delay < Time.now.to_f) || @outbox.count > max_buffer
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
- last_sent = Time.now.to_f
34
- next if @outbox.count.zero?
43
+ last_sent = Time.now.to_f
44
+ next if @outbox.count.zero?
35
45
 
36
- dispatch
46
+ dispatch
47
+ rescue StandardError => e
48
+ logger.error(TAG, e)
49
+ end
37
50
  end
38
51
  end
39
52
  end
@@ -1,3 +1,3 @@
1
1
  module TestaLogger
2
- VERSION = "0.1.11"
2
+ VERSION = "0.1.12"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testa_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - karlo.razumovic