log4ruby 0.0.4 → 0.0.5
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/lib/log4ruby/appender.rb +5 -3
- data/lib/log4ruby/appenders/console_appender.rb +56 -0
- data/lib/log4ruby/appenders/file_appender.rb +6 -16
- data/lib/log4ruby/appenders/stream_appender.rb +4 -3
- data/lib/log4ruby/level.rb +28 -0
- data/lib/log4ruby/version.rb +1 -1
- data/lib/sample.rb +1 -1
- metadata +52 -26
data/lib/log4ruby/appender.rb
CHANGED
@@ -48,15 +48,17 @@ module Log4Ruby
|
|
48
48
|
return if log[:level] < @level
|
49
49
|
|
50
50
|
# Format the log item and emit it.
|
51
|
-
|
51
|
+
string = @formatter.format(log)
|
52
|
+
emit(string, log)
|
52
53
|
end
|
53
54
|
|
54
55
|
private
|
55
56
|
|
56
57
|
# Emits a log message to this appenders target.
|
57
58
|
#
|
58
|
-
# @param [String]
|
59
|
-
|
59
|
+
# @param [String] string the message to emit.
|
60
|
+
# @param [Log4Ruby::Log] log the log item.
|
61
|
+
def emit(string, log)
|
60
62
|
end
|
61
63
|
|
62
64
|
end
|
@@ -17,12 +17,68 @@ module Log4Ruby
|
|
17
17
|
# @param [Hash] options configuration options. Supported keys are:
|
18
18
|
# :formatter - the formatter this appender should use. Uses the DefaultFormatter if not specified.
|
19
19
|
# :target - the target stream to use (:stdout or :stderr). Default is :stdout
|
20
|
+
# :colorize - true to color the content printed to the console. Default is false.
|
20
21
|
def initialize(level, options = {})
|
21
22
|
target = get_option(options, :target, false, :stdout)
|
22
23
|
raise ArgumentError.new("Invalid target '#{target}'. Must be either 'stdout' or 'stderr'.") unless TARGETS.has_key?(target)
|
23
24
|
|
24
25
|
set_option(options, :stream, TARGETS[target], true)
|
25
26
|
super(level, options)
|
27
|
+
|
28
|
+
@colorize = get_option(options, :colorize, false, false)
|
29
|
+
register_default_colors if @colorize
|
30
|
+
end
|
31
|
+
|
32
|
+
# Registers a color for a particular level. Does nothing if the colorize flag was false.
|
33
|
+
#
|
34
|
+
# @param [Log4Ruby::Level] level the level to register the color for.
|
35
|
+
# @param [Array] color_details the details of the color. An array with the attributes, foreground and background colours.
|
36
|
+
def register_color(level, color_details)
|
37
|
+
return if @colors.nil?
|
38
|
+
@colors[level] = color_details
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
# Registers the default set of colors.
|
44
|
+
def register_default_colors
|
45
|
+
@colors = {}
|
46
|
+
@colors[Log4Ruby::Level::TRACE] = [2, 30, nil]
|
47
|
+
@colors[Log4Ruby::Level::FINE] = [2, 30, nil]
|
48
|
+
@colors[Log4Ruby::Level::DEBUG] = [2, 30, nil]
|
49
|
+
@colors[Log4Ruby::Level::CONF] = [nil, 30, nil]
|
50
|
+
@colors[Log4Ruby::Level::INFO] = [nil, 30, nil]
|
51
|
+
@colors[Log4Ruby::Level::WARN] = [1, 30, nil]
|
52
|
+
@colors[Log4Ruby::Level::ERROR] = [1, 31, nil]
|
53
|
+
@colors[Log4Ruby::Level::FATAL] = [1, 31, nil]
|
54
|
+
end
|
55
|
+
|
56
|
+
# Colors the specified string.
|
57
|
+
#
|
58
|
+
# @param [String] string
|
59
|
+
# @param [Hash] options configuration hash.
|
60
|
+
# :attributes - modifiers for the text.
|
61
|
+
# :foreground - the color of the text.
|
62
|
+
# :background - the color the background.
|
63
|
+
def color(string, options = {})
|
64
|
+
attributes = get_option(options, :attributes, false, nil)
|
65
|
+
foreground = get_option(options, :foreground, false, nil)
|
66
|
+
background = get_option(options, :background, false, nil)
|
67
|
+
# Color!
|
68
|
+
color_string = [attributes, foreground, background].compact.join(";")
|
69
|
+
string = "\e[#{color_string}m#{string}\e[0m" unless color_string.empty?
|
70
|
+
# Return colored string.
|
71
|
+
string
|
72
|
+
end
|
73
|
+
|
74
|
+
# Override to color output if needed.
|
75
|
+
def emit(string, log)
|
76
|
+
if @colorize
|
77
|
+
attributes, foreground, background = @colors[log[:level]]
|
78
|
+
string = color(string, :attributes => attributes, :foreground => foreground, :background => background)
|
79
|
+
end
|
80
|
+
|
81
|
+
super(string, log)
|
26
82
|
end
|
27
83
|
|
28
84
|
end
|
@@ -107,14 +107,9 @@ module Log4Ruby
|
|
107
107
|
# @stream is set to the latest file.
|
108
108
|
latest_file
|
109
109
|
# Create the emit method that will roll using the file date as the trigger.
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
# Override to roll using the date of the file.
|
114
|
-
def emit(message)
|
115
|
-
roll_using_date
|
116
|
-
super(message)
|
117
|
-
end
|
110
|
+
def self.emit(string, log)
|
111
|
+
roll_using_date
|
112
|
+
super
|
118
113
|
end
|
119
114
|
end
|
120
115
|
|
@@ -126,14 +121,9 @@ module Log4Ruby
|
|
126
121
|
# @stream is set to the latest file.
|
127
122
|
latest_file
|
128
123
|
# Create the emit method that will roll using the file size as the trigger.
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
# Override to roll using the size of the file.
|
133
|
-
def emit(message)
|
134
|
-
roll_using_size
|
135
|
-
super(message)
|
136
|
-
end
|
124
|
+
def self.emit(string, log)
|
125
|
+
roll_using_size
|
126
|
+
super
|
137
127
|
end
|
138
128
|
end
|
139
129
|
|
@@ -54,10 +54,11 @@ module Log4Ruby
|
|
54
54
|
|
55
55
|
# Writes the message to the underlying stream.
|
56
56
|
#
|
57
|
-
# @param [String]
|
58
|
-
|
57
|
+
# @param [String] string the message to write.
|
58
|
+
# @param [Log4Ruby::Log] log the log item.
|
59
|
+
def emit(string, log)
|
59
60
|
emit_header if @emit_header
|
60
|
-
@stream.write(
|
61
|
+
@stream.write(string)
|
61
62
|
end
|
62
63
|
|
63
64
|
end
|
data/lib/log4ruby/level.rb
CHANGED
@@ -60,18 +60,46 @@ module Log4Ruby
|
|
60
60
|
@weight = weight
|
61
61
|
end
|
62
62
|
|
63
|
+
# Check if this level is equal to the specified other log level.
|
64
|
+
# Comparison is done using the weight attribute
|
65
|
+
#
|
66
|
+
# @param [Log4Ruby::Level] other the other level.
|
67
|
+
def ==(other)
|
68
|
+
self.weight == other.weight
|
69
|
+
end
|
70
|
+
|
63
71
|
# Check if this level is less than the specified other log level.
|
64
72
|
# Comparison is done using the weight attribute
|
73
|
+
#
|
74
|
+
# @param [Log4Ruby::Level] other the other level.
|
65
75
|
def <(other)
|
66
76
|
self.weight < other.weight
|
67
77
|
end
|
68
78
|
|
69
79
|
# Check if this level is less than or equal to the specified other log level.
|
70
80
|
# Comparison is done using the weight attribute
|
81
|
+
#
|
82
|
+
# @param [Log4Ruby::Level] other the other level.
|
71
83
|
def <=(other)
|
72
84
|
self.weight <= other.weight
|
73
85
|
end
|
74
86
|
|
87
|
+
# Check if this level is greater than the specified other log level.
|
88
|
+
# Comparison is done using the weight attribute
|
89
|
+
#
|
90
|
+
# @param [Log4Ruby::Level] other the other level.
|
91
|
+
def >(other)
|
92
|
+
self.weight > other.weight
|
93
|
+
end
|
94
|
+
|
95
|
+
# Check if this level is greater than or equal to the specified other log level.
|
96
|
+
# Comparison is done using the weight attribute
|
97
|
+
#
|
98
|
+
# @param [Log4Ruby::Level] other the other level.
|
99
|
+
def >=(other)
|
100
|
+
self.weight <= other.weight
|
101
|
+
end
|
102
|
+
|
75
103
|
# Override to return the name of the level.
|
76
104
|
#
|
77
105
|
# @return [String] the level's name.
|
data/lib/log4ruby/version.rb
CHANGED
data/lib/sample.rb
CHANGED
@@ -14,7 +14,7 @@ formatter = Log4Ruby::PatternFormatter.new("[%s] %7s - %s : %s (%s)\n", [:timest
|
|
14
14
|
formatter.add_parameter_formatter(:logger, Log4Ruby::ParameterFormatters.logger_formatter(1))
|
15
15
|
formatter.add_parameter_formatter(:timestamp, Log4Ruby::ParameterFormatters.timestamp_formatter("%Y-%m-%d %H:%M:%S.%L"))
|
16
16
|
# Console appender for printing to stdout.
|
17
|
-
console_appender = Log4Ruby::ConsoleAppender.new(Log4Ruby::Level::ALL, :target => :stdout)
|
17
|
+
console_appender = Log4Ruby::ConsoleAppender.new(Log4Ruby::Level::ALL, :target => :stdout, :colorize => true)
|
18
18
|
# Rolling file appender
|
19
19
|
file_appender = Log4Ruby::FileAppender.new(Log4Ruby::Level::ALL, :roll_type => :dont_roll,
|
20
20
|
:directory => "../logs", :prefix => "TestLogger")
|
metadata
CHANGED
@@ -1,34 +1,48 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: log4ruby
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 5
|
10
|
+
version: 0.0.5
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Suraj Vijayakumar
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-07-27 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: options-arg
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 29
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 0
|
32
|
+
- 1
|
21
33
|
version: 0.0.1
|
22
34
|
type: :runtime
|
23
|
-
|
24
|
-
version_requirements: *7797456
|
35
|
+
version_requirements: *id001
|
25
36
|
description: A logging system for Ruby applications inspired by Java's logging API.
|
26
|
-
email:
|
37
|
+
email:
|
27
38
|
- vijayakumar.suraj@gmail.com
|
28
39
|
executables: []
|
40
|
+
|
29
41
|
extensions: []
|
42
|
+
|
30
43
|
extra_rdoc_files: []
|
31
|
-
|
44
|
+
|
45
|
+
files:
|
32
46
|
- lib/log4ruby/appender.rb
|
33
47
|
- lib/log4ruby/appenders/console_appender.rb
|
34
48
|
- lib/log4ruby/appenders/file_appender.rb
|
@@ -46,26 +60,38 @@ files:
|
|
46
60
|
- lib/sample.rb
|
47
61
|
homepage:
|
48
62
|
licenses: []
|
63
|
+
|
49
64
|
post_install_message:
|
50
65
|
rdoc_options: []
|
51
|
-
|
66
|
+
|
67
|
+
require_paths:
|
52
68
|
- lib
|
53
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
70
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 51
|
75
|
+
segments:
|
76
|
+
- 1
|
77
|
+
- 9
|
78
|
+
- 0
|
58
79
|
version: 1.9.0
|
59
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
81
|
none: false
|
61
|
-
requirements:
|
62
|
-
- -
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
65
89
|
requirements: []
|
90
|
+
|
66
91
|
rubyforge_project:
|
67
|
-
rubygems_version: 1.
|
92
|
+
rubygems_version: 1.8.24
|
68
93
|
signing_key:
|
69
94
|
specification_version: 3
|
70
95
|
summary: A simple and customizable logging system inspired by Java logging API.
|
71
96
|
test_files: []
|
97
|
+
|