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