syslogger 1.6.0 → 1.6.1

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