syslogger 1.6.0 → 1.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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/syslogger.rb +43 -5
  3. data/spec/syslogger_spec.rb +9 -0
  4. metadata +17 -25
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 28b700c9de11a93cefdb98ca53a92bf2499a0c74
4
+ data.tar.gz: 5c11451c3ec8745595fe0a85e0d9cd5423bef221
5
+ SHA512:
6
+ metadata.gz: 33b809d97e51893468e8a5679a2bf74d69d4bb8829662090aa0439a2f6eeebdcf8bed7baa8c34b7143a985390f8442ff94974b84610ae7c5fbb6b045e4b884ea
7
+ data.tar.gz: 412a3de21a03b23978d38ce2ddaa74aa15f0901129a468594afd591bd0b66a5e7d3bca329753a34352db8de955d10c25ae93fd1ded0583a17f12539ff970c2a9
data/lib/syslogger.rb CHANGED
@@ -4,7 +4,7 @@ require 'thread'
4
4
 
5
5
  class Syslogger
6
6
 
7
- VERSION = "1.6.0"
7
+ VERSION = "1.6.1"
8
8
 
9
9
  attr_reader :level, :ident, :options, :facility, :max_octets
10
10
  attr_accessor :formatter
@@ -47,7 +47,9 @@ class Syslogger
47
47
  @facility = facility
48
48
  @level = Logger::INFO
49
49
  @mutex = Mutex.new
50
- @formatter = Logger::Formatter.new
50
+ @formatter = proc do |severity, datetime, progname, msg|
51
+ msg
52
+ end
51
53
  end
52
54
 
53
55
  %w{debug info warn error fatal unknown}.each do |logger_method|
@@ -92,9 +94,10 @@ class Syslogger
92
94
  Syslog.open(progname, @options, @facility) do |s|
93
95
  s.mask = Syslog::LOG_UPTO(MAPPING[@level])
94
96
  communication = clean(message || block && block.call)
97
+ formatted_communication = formatter.call([severity], Time.now, progname, communication)
95
98
  if self.max_octets
96
- buffer = ""
97
- communication.bytes do |byte|
99
+ buffer = "#{tags_text}"
100
+ formatted_communication.bytes do |byte|
98
101
  buffer.concat(byte)
99
102
  # if the last byte we added is potentially part of an escape, we'll go ahead and add another byte
100
103
  if buffer.bytesize >= self.max_octets && !['%'.ord,'\\'.ord].include?(byte)
@@ -104,7 +107,7 @@ class Syslogger
104
107
  end
105
108
  s.log(MAPPING[severity],buffer) unless buffer.empty?
106
109
  else
107
- s.log(MAPPING[severity],communication)
110
+ s.log(MAPPING[severity],"#{tags_text}#{formatted_communication}")
108
111
  end
109
112
  end
110
113
  end
@@ -132,6 +135,28 @@ class Syslogger
132
135
  @ident = ident
133
136
  end
134
137
 
138
+ # Tagging code borrowed from ActiveSupport gem
139
+ def tagged(*tags)
140
+ new_tags = push_tags(*tags)
141
+ yield self
142
+ ensure
143
+ pop_tags(new_tags.size)
144
+ end
145
+
146
+ def push_tags(*tags)
147
+ tags.flatten.reject{ |i| i.respond_to?(:empty?) ? i.empty? : !i }.tap do |new_tags|
148
+ current_tags.concat new_tags
149
+ end
150
+ end
151
+
152
+ def pop_tags(size = 1)
153
+ current_tags.pop size
154
+ end
155
+
156
+ def clear_tags!
157
+ current_tags.clear
158
+ end
159
+
135
160
  protected
136
161
 
137
162
  # Borrowed from SyslogLogger.
@@ -143,4 +168,17 @@ class Syslogger
143
168
  message.gsub!(/\e\[[^m]*m/, '') # remove useless ansi color codes
144
169
  message
145
170
  end
171
+
172
+ private
173
+
174
+ def tags_text
175
+ tags = current_tags
176
+ if tags.any?
177
+ tags.collect { |tag| "[#{tag}] " }.join
178
+ end
179
+ end
180
+
181
+ def current_tags
182
+ Thread.current[:syslogger_tagged_logging_tags] ||= []
183
+ end
146
184
  end
@@ -170,6 +170,15 @@ describe "Syslogger" do
170
170
  syslog.should_receive(:log).with(Syslog::LOG_INFO, "a"*480).twice
171
171
  @logger.add(Logger::INFO, "a"*960)
172
172
  end
173
+
174
+ it "should apply the log formatter to the message" do
175
+ Syslog.stub(:open).and_yield(syslog=double("syslog", :mask= => true))
176
+ syslog.should_receive(:log).with(Syslog::LOG_INFO, "test message!")
177
+ @logger.formatter = proc do |severity, datetime, progname, msg|
178
+ "test #{msg}!"
179
+ end
180
+ @logger.add(Logger::INFO, "message")
181
+ end
173
182
  end # describe "add"
174
183
 
175
184
  describe "max_octets=" do
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syslogger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
5
- prerelease:
4
+ version: 1.6.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Cyril Rohr
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-07-08 00:00:00.000000000 Z
11
+ date: 2015-03-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0.9'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0.9'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: '2.0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
40
  version: '2.0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rdoc
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: Same as SyslogLogger, but without the ridiculous number of dependencies
@@ -67,36 +60,35 @@ executables: []
67
60
  extensions: []
68
61
  extra_rdoc_files: []
69
62
  files:
63
+ - LICENSE
64
+ - README.rdoc
65
+ - Rakefile
70
66
  - lib/syslogger.rb
71
67
  - spec/spec_helper.rb
72
68
  - spec/syslogger_spec.rb
73
- - Rakefile
74
- - LICENSE
75
- - README.rdoc
76
69
  homepage: http://github.com/crohr/syslogger
77
70
  licenses: []
71
+ metadata: {}
78
72
  post_install_message:
79
73
  rdoc_options:
80
- - --charset=UTF-8
74
+ - "--charset=UTF-8"
81
75
  require_paths:
82
76
  - lib
83
77
  required_ruby_version: !ruby/object:Gem::Requirement
84
- none: false
85
78
  requirements:
86
- - - ! '>='
79
+ - - ">="
87
80
  - !ruby/object:Gem::Version
88
81
  version: '1.8'
89
82
  required_rubygems_version: !ruby/object:Gem::Requirement
90
- none: false
91
83
  requirements:
92
- - - ! '>='
84
+ - - ">="
93
85
  - !ruby/object:Gem::Version
94
86
  version: '1.3'
95
87
  requirements: []
96
88
  rubyforge_project:
97
- rubygems_version: 1.8.23
89
+ rubygems_version: 2.2.2
98
90
  signing_key:
99
- specification_version: 3
91
+ specification_version: 4
100
92
  summary: Dead simple Ruby Syslog logger
101
93
  test_files:
102
94
  - spec/spec_helper.rb