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 CHANGED
@@ -1 +1 @@
1
- 1.0.0
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::LOG_WARNING,
9
- Logger::ERROR => Syslog::LOG_ERR,
10
- Logger::FATAL => Syslog::LOG_EMERG,
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| s.log(MAPPING[Logger.const_get(logger_method.upcase)], message) }
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
- Syslog.mask = Syslog::LOG_UPTO(MAPPING.invert[logger_level])
46
+ @level = logger_level
37
47
  end
38
48
  end
@@ -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
- logger.should respond_to(:error)
7
- Syslog.should_receive(:open).with($0, Syslog::LOG_PID | Syslog::LOG_CONS, nil).and_yield(syslog=mock("syslog"))
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::LOG_WARNING, "Some message")
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
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{syslogger}
8
- s.version = "1.0.0"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Cyril Rohr"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syslogger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Rohr