syslogger 1.0.0 → 1.1.0
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.
- data/VERSION +1 -1
- data/lib/syslogger.rb +17 -7
- data/spec/syslogger_spec.rb +6 -5
- data/syslogger.gemspec +1 -1
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.1.0
|
data/lib/syslogger.rb
CHANGED
@@ -2,12 +2,14 @@ require 'syslog'
|
|
2
2
|
require 'logger'
|
3
3
|
|
4
4
|
class Syslogger
|
5
|
+
attr_reader :level, :ident, :options, :facility
|
6
|
+
|
5
7
|
MAPPING = {
|
6
8
|
Logger::DEBUG => Syslog::LOG_DEBUG,
|
7
9
|
Logger::INFO => Syslog::LOG_INFO,
|
8
|
-
Logger::WARN => Syslog::
|
9
|
-
Logger::ERROR => Syslog::
|
10
|
-
Logger::FATAL => Syslog::
|
10
|
+
Logger::WARN => Syslog::LOG_NOTICE,
|
11
|
+
Logger::ERROR => Syslog::LOG_WARNING,
|
12
|
+
Logger::FATAL => Syslog::LOG_ERR,
|
11
13
|
Logger::UNKNOWN => Syslog::LOG_ALERT
|
12
14
|
}
|
13
15
|
#
|
@@ -15,24 +17,32 @@ class Syslogger
|
|
15
17
|
# <tt>ident</tt>:: the name of your program [default=$0]
|
16
18
|
# <tt>options</tt>:: Syslog options [default=Syslog::LOG_PID | Syslog::LOG_CONS]
|
17
19
|
# <tt>facility</tt>:: the syslog facility [default=nil]
|
20
|
+
#
|
18
21
|
# correct values are Syslog::LOG_DAEMON, Syslog::LOG_USER, Syslog::LOG_SYSLOG, Syslog::LOG_LOCAL2, Syslog::LOG_NEWS, etc.
|
19
22
|
#
|
20
23
|
# Usage:
|
21
|
-
# logger = Syslog
|
24
|
+
# logger = Syslogger.new("my_app", Syslog::LOG_PID | Syslog::LOG_CONS, Syslog::LOG_LOCAL0)
|
25
|
+
# logger.level = Logger::INFO # use Logger levels
|
26
|
+
# logger.warn "warning message"
|
27
|
+
# logger.debug "debug message"
|
28
|
+
#
|
22
29
|
def initialize(ident = $0, options = Syslog::LOG_PID | Syslog::LOG_CONS, facility = nil)
|
23
30
|
@ident = ident
|
24
31
|
@options = options || (Syslog::LOG_PID | Syslog::LOG_CONS)
|
25
32
|
@facility = facility
|
33
|
+
@level = Logger::INFO
|
26
34
|
end
|
27
35
|
|
28
36
|
%w{debug info warn error fatal unknown}.each do |logger_method|
|
29
|
-
# {:debug => :debug, :info => :info, :warn => :warning, :error => :err, :fatal => :emerg, :unknown => :alert}.each do |logger_method, syslog_method|
|
30
37
|
define_method logger_method.to_sym do |message|
|
31
|
-
Syslog.open(@ident, @options, @facility) { |s|
|
38
|
+
Syslog.open(@ident, @options, @facility) { |s|
|
39
|
+
s.mask = Syslog::LOG_UPTO(MAPPING[@level])
|
40
|
+
s.log(MAPPING[Logger.const_get(logger_method.upcase)], message)
|
41
|
+
}
|
32
42
|
end
|
33
43
|
end
|
34
44
|
|
35
45
|
def level=(logger_level)
|
36
|
-
|
46
|
+
@level = logger_level
|
37
47
|
end
|
38
48
|
end
|
data/spec/syslogger_spec.rb
CHANGED
@@ -3,16 +3,15 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
3
3
|
describe "Syslogger" do
|
4
4
|
it "should log to the default syslog facility, with the default options" do
|
5
5
|
logger = Syslogger.new
|
6
|
-
|
7
|
-
|
8
|
-
syslog.should_receive(:log).with(Syslog::LOG_WARNING, "Some message")
|
6
|
+
Syslog.should_receive(:open).with($0, Syslog::LOG_PID | Syslog::LOG_CONS, nil).and_yield(syslog=mock("syslog", :mask= => true))
|
7
|
+
syslog.should_receive(:log).with(Syslog::LOG_NOTICE, "Some message")
|
9
8
|
logger.warn "Some message"
|
10
9
|
end
|
11
10
|
|
12
11
|
it "should log to the user facility, with specific options" do
|
13
12
|
logger = Syslogger.new("my_app", Syslog::LOG_PID, Syslog::LOG_USER)
|
14
|
-
Syslog.should_receive(:open).with("my_app", Syslog::LOG_PID, Syslog::LOG_USER).and_yield(syslog=mock("syslog"))
|
15
|
-
syslog.should_receive(:log).with(Syslog::
|
13
|
+
Syslog.should_receive(:open).with("my_app", Syslog::LOG_PID, Syslog::LOG_USER).and_yield(syslog=mock("syslog", :mask= => true))
|
14
|
+
syslog.should_receive(:log).with(Syslog::LOG_NOTICE, "Some message")
|
16
15
|
logger.warn "Some message"
|
17
16
|
end
|
18
17
|
|
@@ -21,4 +20,6 @@ describe "Syslogger" do
|
|
21
20
|
Syslogger.new.should respond_to logger_method.to_sym
|
22
21
|
end
|
23
22
|
end
|
23
|
+
|
24
|
+
# TODO: test logger level
|
24
25
|
end
|
data/syslogger.gemspec
CHANGED