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.
- checksums.yaml +7 -0
- data/lib/syslogger.rb +43 -5
- data/spec/syslogger_spec.rb +9 -0
- 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.
|
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 =
|
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
|
-
|
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],
|
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
|
data/spec/syslogger_spec.rb
CHANGED
@@ -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.
|
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:
|
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:
|
89
|
+
rubygems_version: 2.2.2
|
98
90
|
signing_key:
|
99
|
-
specification_version:
|
91
|
+
specification_version: 4
|
100
92
|
summary: Dead simple Ruby Syslog logger
|
101
93
|
test_files:
|
102
94
|
- spec/spec_helper.rb
|