betterlog 0.5.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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