journald-logger 1.0.1 → 1.1.0

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
  SHA1:
3
- metadata.gz: 9687426a5dfa6a08d6911f0039a2b96baf58f59b
4
- data.tar.gz: bbd7f7f9ef41c560dbaff136dcbf7796c7785495
3
+ metadata.gz: f439b01c80933fbed06d743b60b53a7f3d87ea33
4
+ data.tar.gz: 1de7b0eda60725b9d6b0f57c54cce300c0ebf9e9
5
5
  SHA512:
6
- metadata.gz: 6e95eb9a3d24918e802228d5789916ffff5992182a33e4abf1f20fffbf11fc6159b6c394f44e3f34e52060c3b76721ba717a306d3a3976ab7ac569d870985e50
7
- data.tar.gz: a995a08142c11a182ab6d8025b82aaf0b1b3d3d1b5d348d194fcaf845b2908e68346bf74abd190560e0fa4ce29d36e2f8d8ad544de10f4198468d247137dde79
6
+ metadata.gz: 4c9962e13a751093b5f7e62ff6a4218c83d663ae4989ffda7183707e58edf9df1136a44d497b56189b92f8acc93961a791991338921064b81d5c046cc5856938
7
+ data.tar.gz: 6e1ed32b61eadcdaf19f2c5784c43c20b57e372b3c0085b8a4aa0efd22db5225ed1e171e0076026058f8397e8400c7a6763eef10643aefa506990d1ec6f3d607
data/README.md CHANGED
@@ -41,6 +41,15 @@ LEVEL_MAP = {
41
41
 
42
42
  You may notice it's somewhat different from the one from Syslog::Logger
43
43
 
44
+ ## Setting report level
45
+
46
+ ```ruby
47
+ logger = Journald::Logger.new('gandalf', Journald::LOG_NOTICE) # set minimal reporting level to notice
48
+ logger.min_priority = Journald::LOG_NOTICE # runtime change of minimal priority
49
+ logger.level = Logger::WARN # use Logger severity
50
+ logger.sev_threshold = Logger::INFO # please pay attention that Logger severity lacks several levels e.g. 'notice'
51
+ ```
52
+
44
53
  ## Tags
45
54
 
46
55
  Tags are used to add systemd-journal fields to all subsequent log calls until removed
@@ -86,7 +95,7 @@ logger.log_debug 'Debug'
86
95
  begin
87
96
  raise "Aw, snap!"
88
97
  rescue => e
89
- logger.exception e # log exception with LOG_CRIT level by default
98
+ logger.exception e # log exception with LOG_ERR level by default
90
99
  logger.exception e, severity: Logger::WARN # use Logger severity
91
100
  logger.exception e, priority: Journald::LOG_ALERT # use Syslog priority
92
101
  end
@@ -4,9 +4,10 @@ module Journald
4
4
  include Loggable
5
5
  include Sysloggable
6
6
 
7
- def initialize(progname = nil, tags = {})
7
+ def initialize(progname = nil, min_priority = nil, tags = {})
8
8
  @tags = tags
9
9
  @logger = Native
10
+ self.min_priority = min_priority
10
11
  self.progname = progname
11
12
  end
12
13
 
@@ -18,6 +19,12 @@ module Journald
18
19
  tag(:syslog_identifier, value)
19
20
  end
20
21
 
22
+ attr_reader :min_priority
23
+
24
+ def min_priority=(value)
25
+ @min_priority = value ? value.to_i : ::Journald::LOG_DEBUG
26
+ end
27
+
21
28
  # systemd-journal style
22
29
 
23
30
  # send systemd-journal message
@@ -84,6 +91,12 @@ module Journald
84
91
  key = k.to_s.upcase
85
92
  value = v.to_s
86
93
 
94
+ if key == 'PRIORITY'
95
+ priority = value.to_i
96
+
97
+ return 0 if priority > @min_priority # DEBUG = 7, ALERT = 1
98
+ end
99
+
87
100
  "#{key}=#{value}"
88
101
  end
89
102
 
@@ -1,7 +1,7 @@
1
1
  module Journald
2
2
  class TraceLogger
3
- def initialize(progname = nil, tags = {})
4
- @wrapped_logger = Logger.new(progname, tags)
3
+ def initialize(progname = nil, min_priority = nil, tags = {})
4
+ @wrapped_logger = ::Journald::Logger.new(progname, min_priority, tags)
5
5
  end
6
6
 
7
7
  PASSTHROUGH_METHODS = [
@@ -9,9 +9,13 @@ module Journald
9
9
  :tag_value,
10
10
  :untag,
11
11
  :progname,
12
- :'progname=',
12
+ :progname=,
13
13
  :level,
14
- :'level=',
14
+ :level=,
15
+ :sev_threshold,
16
+ :sev_threshold=,
17
+ :min_priority,
18
+ :min_priority=,
15
19
  ]
16
20
 
17
21
  METHODS = (
@@ -2,7 +2,7 @@ module Journald
2
2
  class Logger
3
3
  module Exceptionable
4
4
  def exception(e, priority: nil, severity: nil)
5
- priority ||= severity_to_priority(severity) || Journald::LOG_CRIT
5
+ priority ||= severity_to_priority(severity) || Journald::LOG_ERR
6
6
  real_exception(e, priority, false)
7
7
  end
8
8
 
@@ -46,7 +46,8 @@ module Journald
46
46
  end
47
47
 
48
48
  define_method("#{severity_key}?".to_sym) do
49
- true # journald always logs everything
49
+ priority = severity_to_priority(severity_value)
50
+ self.min_priority >= priority
50
51
  end
51
52
  end
52
53
 
@@ -58,15 +59,16 @@ module Journald
58
59
 
59
60
  # journald always logs everything
60
61
  def level
61
- ::Logger::DEBUG
62
+ priority = self.min_priority
63
+ LEVEL_MAP.select{|_,p| p <= priority}.keys.min
62
64
  end
63
65
 
64
- def sev_threshold
65
- ::Logger::DEBUG
66
+ def level=(severity)
67
+ self.min_priority = severity_to_priority(severity)
66
68
  end
67
69
 
68
- def level=(_); end
69
- def sev_threshold=(_); end
70
+ alias_method :sev_threshold, :level
71
+ alias_method :sev_threshold=, :level=
70
72
 
71
73
  # journald does not require formatter or formatting
72
74
  def formatter; end
@@ -1,5 +1,5 @@
1
1
  module Journald
2
2
  class Logger
3
- VERSION = '1.0.1'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: journald-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Smirnov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-11 00:00:00.000000000 Z
11
+ date: 2014-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: journald-native