betterlog 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6bd5da0d6c350ef76ef94f07ef01890ae7ab788c1056b59a7b1ed131daec92bb
4
- data.tar.gz: 7bcd0afc6a3c4df22063cad92c0c9d4a89cc78553af49235c3d9dffda83e9804
3
+ metadata.gz: ea1ed4b88f6dbe71f77b72bbbd35a3cc42a134a8b299659cf7b4fb29c63650f9
4
+ data.tar.gz: 44e5c241558ac5b8d7fa979d51539d0137e90dcdd4c9c75afbac33e0c179fa03
5
5
  SHA512:
6
- metadata.gz: 11a28dc6bab8924864b422d38fb8a79b3cd513c1d85e87b8df97beb47905138a45e9f8d286c308eabf09cdace92d0c8e2bd520209f06b2fbae1e453edb089dae
7
- data.tar.gz: b0283f923134dafe12f5c6313d5e174856ebceb4928472ead2132ceaa63f1fc32045145fcb7dfdf9524783658d75ebc66e28eb291b654396043dda4d52615ddd
6
+ metadata.gz: ccf0ab6e5ed1cc99873447717541cd6428c8382410986029f07179be0463af31815e4da9fbebfb6de2318f1107dcdf3066bb7e120cbd6e8b3b3c8b27fb93e4dc
7
+ data.tar.gz: 8841c441c63e8fa09ebea2b5c22599b0c8f0070295497b369a4c2258132a1867889e0f22dd933f0d68c648307ad26210e9769ca85e098eebafc088d013eaa25e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.6.1
data/betterlog.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: betterlog 0.5.0 ruby lib
2
+ # stub: betterlog 0.6.1 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "betterlog".freeze
6
- s.version = "0.5.0"
6
+ s.version = "0.6.1"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["betterplace Developers".freeze]
11
- s.date = "2019-07-18"
11
+ s.date = "2019-07-22"
12
12
  s.description = "This library provides structure json logging for our rails projects".freeze
13
13
  s.email = "developers@betterplace.org".freeze
14
14
  s.executables = ["betterlog".freeze, "betterlog_pusher".freeze, "betterlog_sink".freeze]
@@ -2,18 +2,29 @@ require 'redis'
2
2
 
3
3
  module Betterlog
4
4
  class Logger < ::Logger
5
- def initialize(redis, shift_age = 0, shift_size = 1048576, name: nil, **opts)
6
- @redis = redis
7
- @name = name || self.class.name
5
+ def initialize(redis, shift_age = 0, shift_size = 1048576, name: nil, buffer_size: nil, **opts)
6
+ @redis = redis
7
+ @name = name || self.class.name
8
+ @buffer_size = determine_buffer_size(buffer_size)
8
9
  super(@logdev, shift_age, shift_size, **opts)
9
10
  end
10
11
 
12
+ private def determine_buffer_size(buffer_size)
13
+ if buffer_size.nil? || buffer_size < 1 * 1024 ** 2
14
+ 1 * 1024 ** 2 # Default to very small buffer
15
+ elsif buffer_size > 511 * 1024 ** 2
16
+ 511 * 1024 ** 2 # Stay well below redis' 512Mb upper limit for strings
17
+ else
18
+ buffer_size
19
+ end
20
+ end
21
+
11
22
  private def redis_write(msg)
12
- # Redis string limit is at 512MB, stop before that after warning a lot.
13
- if @redis.strlen(@name) > 511 * 1024 ** 2
23
+ # Stop before reaching configured buffer_size limit, after warning a lot.
24
+ if @redis.strlen(@name) > (@buffer_size * 96) / 100
14
25
  return nil
15
26
  end
16
- if @redis.strlen(@name) > 510 * 1024 ** 2
27
+ if @redis.strlen(@name) > (@buffer_size * 95) / 100
17
28
  @redis.append @name, "\nRedis memory limit will soon be reached =>"\
18
29
  " Log output to redis stops now unless log data is pushed away!\n"
19
30
  return nil
@@ -1,6 +1,6 @@
1
1
  module Betterlog
2
2
  # Betterlog version
3
- VERSION = '0.5.0'
3
+ VERSION = '0.6.1'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: betterlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - betterplace Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-18 00:00:00.000000000 Z
11
+ date: 2019-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar