class_logger 1.0 → 1.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.
- data/README.md +1 -4
- data/class_logger.gemspec +1 -1
- data/examples/examples.rb +3 -3
- data/lib/class_logger.rb +6 -4
- data/test/test_class_logger.rb +80 -0
- metadata +4 -4
- data/lib/class_logger/version.rb +0 -3
data/README.md
CHANGED
@@ -55,9 +55,6 @@ The following can be used in the *path* or *in* options.
|
|
55
55
|
|
56
56
|
<dt><strong>%{class_name}</strong></dt>
|
57
57
|
<dd>Will replace itself with the name of the class.</dd>
|
58
|
-
|
59
|
-
<dt><strong>%{caller_path_}</strong></dt>
|
60
|
-
<dd>Will replace itself the path of the calling file. (Useful if you want logs relative to your scripts location)</dd>
|
61
58
|
</dl>
|
62
59
|
|
63
60
|
Example Usage
|
@@ -100,7 +97,7 @@ Example Usage
|
|
100
97
|
# create a logger for a module
|
101
98
|
module Something
|
102
99
|
include ClassLogger
|
103
|
-
has_logger :in => "
|
100
|
+
has_logger :in => "#{File.dirname(__FILE__)}/log/my_module.log"
|
104
101
|
has_logger :in => "/var/log/utoh.log", :as => :utoh_logger
|
105
102
|
end
|
106
103
|
Something.logger.info "Testing 123" # => goes to ./log/my_module.log
|
data/class_logger.gemspec
CHANGED
data/examples/examples.rb
CHANGED
@@ -4,7 +4,7 @@ $log_path = File.dirname(__FILE__)
|
|
4
4
|
# test module functionality
|
5
5
|
module Hello
|
6
6
|
include ClassLogger
|
7
|
-
has_logger :in => "
|
7
|
+
has_logger :in => "#{$log_path}/%{class_name}.log", :as => :my_logger
|
8
8
|
|
9
9
|
def self.alternate
|
10
10
|
loggers[:my_logger]
|
@@ -17,7 +17,7 @@ Hello.alternate.info "Hai der!"
|
|
17
17
|
class Gateway
|
18
18
|
include ClassLogger
|
19
19
|
has_logger :path => $log_path, :level => Logger::ERROR
|
20
|
-
has_logger :in => "
|
20
|
+
has_logger :in => "#{$log_path}/transaction.log", :as => :transaction_logger,
|
21
21
|
:formatter => proc{ |severity, time, program_name, message| "[%s-Transaction]: %s\n" % [severity, message] }
|
22
22
|
|
23
23
|
def initialize
|
@@ -36,7 +36,7 @@ g.transact!
|
|
36
36
|
# test default functionality
|
37
37
|
class Default
|
38
38
|
include ClassLogger
|
39
|
-
has_logger :path =>
|
39
|
+
has_logger :path => $log_path
|
40
40
|
end
|
41
41
|
|
42
42
|
Default.new.logger.info "Testing"
|
data/lib/class_logger.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'logger'
|
2
2
|
|
3
3
|
module ClassLogger
|
4
|
+
VERSION = '1.1'
|
5
|
+
|
4
6
|
def self.included(base)
|
5
7
|
base.extend DSL
|
6
8
|
end
|
@@ -25,22 +27,22 @@ module ClassLogger
|
|
25
27
|
|
26
28
|
module ClassMethods
|
27
29
|
def loggers
|
28
|
-
|
30
|
+
@loggers ||= {}
|
29
31
|
end
|
30
32
|
|
31
33
|
def setup_logger(options)
|
32
34
|
interpolations = {
|
33
35
|
:rails_root => (defined?(Rails) ? Rails.root : ''),
|
34
|
-
:class_name => self.to_s.downcase
|
35
|
-
:caller_path => (File.dirname(caller[1]) rescue '.')
|
36
|
+
:class_name => self.to_s.downcase
|
36
37
|
}
|
37
|
-
|
38
|
+
|
38
39
|
if i = options[:in]
|
39
40
|
options[:file] = File.basename(i)
|
40
41
|
options[:path] = File.dirname(i)
|
41
42
|
end
|
42
43
|
|
43
44
|
file_path = File.join(options[:path], options[:file]).to_s % interpolations
|
45
|
+
|
44
46
|
if (rotate = options[:rotate])
|
45
47
|
_logger = ::Logger.new(file_path, rotate)
|
46
48
|
else
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require File.expand_path('../../lib/class_logger', __FILE__)
|
2
|
+
require 'fileutils'
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
$logpath = File.expand_path('../logs', __FILE__)
|
6
|
+
Dir[File.join($logpath, '*')].each{ |f| File.delete f }
|
7
|
+
|
8
|
+
def log_includes(filename, regexp)
|
9
|
+
IO.read(filename) =~ regexp
|
10
|
+
end
|
11
|
+
|
12
|
+
module TestModule
|
13
|
+
include ClassLogger
|
14
|
+
has_logger :path => $logpath
|
15
|
+
has_logger :in => File.join($logpath, 'module_named.log'), :as => :named
|
16
|
+
has_logger :path => $logpath, :file => "module_file.log", :as => :file
|
17
|
+
has_logger :in => "#{$logpath}/module_formatted.log", :as => :formatted,
|
18
|
+
:formatter => proc{ |s,t,p,m| "FORMATTED-%s: %s" % [s,m] }
|
19
|
+
end
|
20
|
+
|
21
|
+
class TestClass
|
22
|
+
include ClassLogger
|
23
|
+
has_logger :path => $logpath
|
24
|
+
has_logger :in => "#{$logpath}/class_named.log", :as => :named
|
25
|
+
has_logger :in => "#{$logpath}/level.log", :as => :level, :level => Logger::ERROR
|
26
|
+
end
|
27
|
+
|
28
|
+
class ModuleLoggerTest < Test::Unit::TestCase
|
29
|
+
def test_log_creation
|
30
|
+
assert File.exists?(File.join($logpath, TestModule.to_s.downcase+'.log')), '[Default] log wasnt created in the proper place'
|
31
|
+
assert File.exists?(File.join($logpath, 'module_named.log')), '[Named] log wasnt created in the proper place'
|
32
|
+
assert File.exists?(File.join($logpath, 'module_file.log')), '[File1] log wasnt created in the proper place'
|
33
|
+
assert File.exists?(File.join($logpath, 'module_formatted.log')), '[Formatted] log wasnt created in the proper place'
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_default_logger
|
37
|
+
assert TestModule.logger.info("Hello")
|
38
|
+
assert log_includes(File.join($logpath,TestModule.to_s.downcase+'.log'), /Hello/)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_named_logger
|
42
|
+
assert TestModule.named.info("Named!")
|
43
|
+
assert log_includes(File.join($logpath,'module_named.log'), /Named/)
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_formatted_logger
|
47
|
+
assert TestModule.formatted.info("Am i formatted?")
|
48
|
+
assert log_includes(File.join($logpath,'module_formatted.log'), /FORMATTED-INFO: Am i formatted\?/)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class ClassLoggerTest < Test::Unit::TestCase
|
53
|
+
def setup
|
54
|
+
@tc = TestClass.new
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_log_creation
|
58
|
+
assert File.exists?(File.join($logpath, TestClass.to_s.downcase+'.log')), '[Default] log wasnt created in the proper place'
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_default_logger
|
62
|
+
assert TestClass.logger.info("Hello")
|
63
|
+
assert @tc.logger.info("Instanced!")
|
64
|
+
assert log_includes(File.join($logpath,TestClass.to_s.downcase+'.log'), /Hello/)
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_named_logger
|
68
|
+
assert @tc.named.info("NamedINSTANCE")
|
69
|
+
assert TestClass.named.info("NamedCLASS")
|
70
|
+
assert log_includes(File.join($logpath,'class_named.log'), /NamedINSTANCE/)
|
71
|
+
assert log_includes(File.join($logpath,'class_named.log'), /NamedCLASS/)
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_level
|
75
|
+
@tc.level.info "Info"
|
76
|
+
@tc.level.error "Error"
|
77
|
+
assert !log_includes(File.join($logpath, 'level.log'), /Info/)
|
78
|
+
assert log_includes(File.join($logpath, 'level.log'), /Error/)
|
79
|
+
end
|
80
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: class_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: "1.
|
5
|
+
version: "1.1"
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Rob Hurring
|
@@ -31,7 +31,7 @@ files:
|
|
31
31
|
- class_logger.gemspec
|
32
32
|
- examples/examples.rb
|
33
33
|
- lib/class_logger.rb
|
34
|
-
-
|
34
|
+
- test/test_class_logger.rb
|
35
35
|
has_rdoc: true
|
36
36
|
homepage: ""
|
37
37
|
licenses: []
|
@@ -60,5 +60,5 @@ rubygems_version: 1.5.0
|
|
60
60
|
signing_key:
|
61
61
|
specification_version: 3
|
62
62
|
summary: Adds custom logger(s) to any ruby module or class
|
63
|
-
test_files:
|
64
|
-
|
63
|
+
test_files:
|
64
|
+
- test/test_class_logger.rb
|
data/lib/class_logger/version.rb
DELETED