slogger 0.0.2 → 0.0.3

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/README.rdoc CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  Slogger is a Ruby library to help work with standard Ruby Syslog library.
4
4
 
5
+ == Install
6
+
7
+ Slogger is hosted on RubyGems (https://rubygems.org/gems/slogger), so to install it is really easy.
8
+
9
+ $ gem install slogger
10
+
5
11
  == Features
6
12
 
7
13
  === Slogger::Logger
@@ -10,14 +16,27 @@ A more friendly wrapper on Ruby's Syslog.
10
16
 
11
17
  Sample: simple message log
12
18
 
13
- slogger = Slogger::Logger.new "sample_app", :debug, :local0
19
+ require "slogger"
20
+
21
+ # So in this sample:
22
+ #
23
+ # "sample_name": application name
24
+ # :info : severity level
25
+ # :local0 : facility
26
+
27
+ slogger = Slogger::Logger.new "sample_app", :info, :local0
14
28
  slogger.info "A good info"
15
- slogger.debug "A deep info"
29
+ slogger.debug "A deep info (oops!)" # it'll not be logged
30
+
31
+ slogger.severity = :debug
32
+ slogger.debug "A deep info (yay!)" # now it'll be logged
16
33
 
17
34
  # and after, look at the syslog file of your SO ;)
18
35
 
19
36
  Sample: message log preceded by spent time
20
37
 
38
+ require "slogger"
39
+
21
40
  slogger = Slogger::Logger.new "sample_app", :debug, :local0
22
41
  slogger.info "A really good info preceded by spent time" do
23
42
  # do something
@@ -31,12 +50,14 @@ A Rack middleware to log incoming requests.
31
50
 
32
51
  Sample:
33
52
 
34
- configure do
35
- slogger = Slogger::Logger.new "sample_app", :debug, :local0
36
- use Slogger::Rack::RequestLogger, slogger
37
- end
53
+ require "slogger"
54
+
55
+ configure do
56
+ slogger = Slogger::Logger.new "sample_app", :debug, :local0
57
+ use Slogger::Rack::RequestLogger, slogger
58
+ end
38
59
 
39
- # and after, look at the syslog file of your SO ;)
60
+ # and after, look at the syslog file of your SO ;)
40
61
 
41
62
  == Future
42
63
 
@@ -46,4 +67,4 @@ For now is it.
46
67
 
47
68
  == Copyright
48
69
 
49
- Copyright (c) 2011 Leandro Silva (CodeZone). Blog: http://leandrosilva.com.br.
70
+ Copyright (c) 2011 Leandro Silva (CodeZone).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -3,7 +3,7 @@ module Slogger
3
3
  # The wrapper for standard Ruby Syslog library.
4
4
  #
5
5
  class Logger
6
- LEVEL = {
6
+ SEVERITY = {
7
7
  :crit => 0,
8
8
  :emerg => 1,
9
9
  :alert => 2,
@@ -36,43 +36,53 @@ module Slogger
36
36
  :local7 => Syslog::LOG_LOCAL7
37
37
  }
38
38
 
39
- attr_reader :app_name, :level, :facility
39
+ attr_reader :app_name, :severity, :facility
40
40
 
41
41
  #
42
42
  # To build a Slogger::Logger instance.
43
43
  #
44
44
  # +app_name+:: The appliaction name to be logged
45
- # +level+:: The log level: :crit, :emerg, :alert, :err, :warning, :notice,
46
- # :info, or :debug.
45
+ # +severity+:: The log severity: :crit, :emerg, :alert, :err, :warning, :notice,
46
+ # :info, or :debug. It can be changed at anytime.
47
47
  # +facility+:: A typical syslog facility: :user, :mail, :daemon, :auth,
48
48
  # :syslog, :lpr, :news, :uucp, :cron, :authpriv, :ftp,
49
49
  # :local0, :local1, :local2, :local3, :local4, :local5,
50
50
  # :local6, or :local7
51
51
  #
52
- # Raises an ArgumentError if app_name, level, or facility is nil.
52
+ # Raises an ArgumentError if app_name, severity, or facility is nil.
53
53
  #
54
- def initialize(app_name, level, facility)
55
- raise ArgumentError, "The 'app_name' parameter is required" unless app_name
56
- raise ArgumentError, "The 'level' parameter is required" unless level
57
- raise ArgumentError, "The 'facility' parameter is required" unless facility
54
+ def initialize(app_name, severity, facility)
55
+ raise_argument_error_to_required_parameter "app_name" unless app_name
56
+ raise_argument_error_to_required_parameter "severity" unless severity
57
+ raise_argument_error_to_required_parameter "facility" unless facility
58
+
59
+ raise_argument_error_to_invalid_parameter "severity", "SEVERITY" unless SEVERITY[severity]
60
+ raise_argument_error_to_invalid_parameter "facility", "FACILITY" unless FACILITY[facility]
58
61
 
59
62
  @app_name = app_name
60
- @level = level
61
- @level_as_int = LEVEL[level]
63
+ @severity = severity
64
+ @severity_as_int = SEVERITY[severity]
62
65
  @facility = facility
63
66
  @facility_as_int = FACILITY[facility]
64
67
  end
65
68
 
66
- LEVEL.each_key do |level|
67
- define_method level do |message, &block|
68
- log(level, message, &block)
69
+ SEVERITY.each_key do |severity|
70
+ define_method severity do |message, &block|
71
+ log(severity, message, &block)
69
72
  end
70
73
  end
71
74
 
75
+ def severity=(value)
76
+ raise_argument_error_to_invalid_parameter "severity", "SEVERITY" unless SEVERITY[value]
77
+
78
+ @severity = value
79
+ @severity_as_int = SEVERITY[value]
80
+ end
81
+
72
82
  private
73
83
 
74
- def log(level, message, &block)
75
- return if LEVEL[level] > @level_as_int
84
+ def log(severity, message, &block)
85
+ return if SEVERITY[severity] > @severity_as_int
76
86
 
77
87
  if block_given?
78
88
  began_at = Time.now
@@ -84,7 +94,15 @@ module Slogger
84
94
  message = "[#{end_at}s] #{message}"
85
95
  end
86
96
 
87
- Syslog.open(@app_name, Syslog::LOG_PID, @facility_as_int) { |s| s.send level, message }
97
+ Syslog.open(@app_name, Syslog::LOG_PID, @facility_as_int) { |s| s.send severity, message }
98
+ end
99
+
100
+ def raise_argument_error_to_required_parameter(param)
101
+ raise ArgumentError, "The '#{param}' parameter is required."
102
+ end
103
+
104
+ def raise_argument_error_to_invalid_parameter(param, options)
105
+ raise ArgumentError, "The '#{param}' parameter is invalid. Inspect the #{options} constant to know the options."
88
106
  end
89
107
  end
90
108
  end
@@ -1,52 +1,93 @@
1
1
  require File.join(File.dirname(__FILE__), "..", "/spec_helper")
2
2
 
3
3
  describe Slogger::Logger do
4
- describe "valid state" do
5
- subject { Slogger::Logger.new "test_app", :debug, :local0 }
4
+ subject { Slogger::Logger.new "test_app", :debug, :local0 }
6
5
 
7
- its(:app_name) { should == "test_app" }
8
- its(:level) { should == :debug }
9
- its(:facility) { should == :local0 }
6
+ describe "valid state" do
7
+ it "should have an app_name attribute" do
8
+ subject.app_name.should == "test_app"
9
+ end
10
+
11
+ it "should have a severity attribute" do
12
+ subject.severity.should == :debug
13
+ end
14
+
15
+ it "should have a facility attribute" do
16
+ subject.facility.should == :local0
17
+ end
10
18
  end
11
19
 
12
20
  describe "invalid state" do
13
- it "should raise ArgumentError if doen't have app_name" do
21
+ it "should raise ArgumentError if doesn't have app_name" do
14
22
  lambda { Slogger::Logger.new nil, :debug, :local0 }.should raise_error
15
23
  end
16
24
 
17
- it "should raise ArgumentError if doen't have level" do
25
+ it "should raise ArgumentError if doesn't have severity" do
18
26
  lambda { Slogger::Logger.new "test_app", nil, :local0 }.should raise_error
19
27
  end
20
28
 
21
- it "should raise ArgumentError if doen't have facility" do
29
+ it "should raise ArgumentError if doesn't have facility" do
22
30
  lambda { Slogger::Logger.new "test_app", :debug, nil }.should raise_error
23
31
  end
32
+
33
+ it "should raise ArgumentError if severity level is invalid" do
34
+ lambda { Slogger::Logger.new "test_app", :junk, :local0 }.should raise_error
35
+ end
36
+
37
+ it "should raise ArgumentError if facility is invalid" do
38
+ lambda { Slogger::Logger.new "test_app", :describe, :junk }.should raise_error
39
+ end
40
+ end
41
+
42
+ describe "severity setup" do
43
+ it "should be possible to change severity attribute" do
44
+ subject.severity.should be :debug
45
+ subject.severity = :warning
46
+ subject.severity.should be :warning
47
+ subject.severity = :info
48
+ subject.severity.should be :info
49
+ end
50
+
51
+ it "should raise ArgumentError if try to change severity attribute to a invalid one" do
52
+ lambda { subject.severity = :junk }.should raise_error
53
+ end
24
54
  end
25
55
 
26
- describe "when in warning level" do
27
- subject { Slogger::Logger.new "test_app", :warning, :local0 }
56
+ describe "logging" do
57
+ describe "when is in WARNING severity" do
58
+ subject { Slogger::Logger.new "test_app", :warning, :local0 }
28
59
 
29
- it "should log WARNING messages" do
30
- Syslog.stub!(:warning).with(anything).and_return(Syslog)
31
- Syslog.should_receive(:warning).and_return(Syslog)
60
+ it "should log WARNING messages" do
61
+ Syslog.stub!(:warning).with(anything).and_return(Syslog)
62
+ Syslog.should_receive(:warning).and_return(Syslog)
32
63
 
33
- subject.warning "WARNING message"
34
- end
64
+ subject.warning "WARNING message"
65
+ end
35
66
 
36
- it "shouldn't log INFO messages" do
37
- Syslog.stub!(:info).with(anything).and_return(Syslog)
38
- Syslog.should_not_receive(:info).and_return(Syslog)
67
+ it "shouldn't log INFO messages" do
68
+ Syslog.stub!(:info).with(anything).and_return(Syslog)
69
+ Syslog.should_not_receive(:info).and_return(Syslog)
70
+
71
+ subject.info "INFO message"
72
+ end
73
+
74
+ describe "but when severity is changed to INFO" do
75
+ it "should log INFO messages" do
76
+ subject.severity = :info
39
77
 
40
- subject.info "INFO message"
78
+ Syslog.stub!(:info).with(anything).and_return(Syslog)
79
+ Syslog.should_receive(:info).and_return(Syslog)
80
+
81
+ subject.info "INFO message"
82
+ end
83
+ end
41
84
  end
42
- end
43
-
44
- describe "when a block is passed to log method" do
45
- subject { Slogger::Logger.new "test_app", :debug, :local0 }
46
-
47
- it "it should add spent time to the message" do
48
- subject.info "a block wrapped by log" do
49
- sleep(10)
85
+
86
+ describe "when a block is passed to log method" do
87
+ it "should add spent time to the message" do
88
+ subject.info "a block wrapped by log" do
89
+ sleep(2)
90
+ end
50
91
  end
51
92
  end
52
93
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slogger
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Leandro Silva
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-18 00:00:00 -02:00
18
+ date: 2011-02-21 00:00:00 -03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency