pyer-logger 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pyer/logger.rb +53 -49
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37b2bd3c55935f4e00ad24afb3eefd3cefba458ab76124aec5d48c8d94864f21
|
4
|
+
data.tar.gz: 0dfa99dc327452c4cb2842df8c9bfa2860e331b60d07fcb96e42cbb483aac9be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59f2837376f51a162cd49801ab6a2a02db831b663c0017b64f5d8ea3d5c7599c3b01caa99f2393213f5791345f40496c6014127f768d357d47314e8b1581c09d
|
7
|
+
data.tar.gz: 6005918677f4113ea853ae2fc289b08f4260ad62a11540b64616f6c765769bb8ce835567d836f8bfed84282670b8aedaca6298f9f54d9fcbfc0d5bf01947a547
|
data/lib/pyer/logger.rb
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
# 2. INFO : generic (useful) information about system operation
|
10
10
|
# 3. WARN : a warning
|
11
11
|
# 4. ERROR : an error condition
|
12
|
+
# 5. NONE : no log
|
12
13
|
#
|
13
14
|
# So each message has a level, and the Logger itself has a level, which acts
|
14
15
|
# as a filter, so you can control the amount of information emitted from the
|
@@ -16,27 +17,25 @@
|
|
16
17
|
#
|
17
18
|
# == How to create a logger ?
|
18
19
|
#
|
19
|
-
# 1. Create a logger which logs messages to
|
20
|
-
# log = Logger.new
|
21
|
-
# log = Logger.new(STDERR, self.class)
|
20
|
+
# 1. Create a default logger which logs messages to STDOUT
|
21
|
+
# log = Logger.new
|
22
22
|
#
|
23
|
-
# 2. Create a logger
|
24
|
-
# log = Logger.new(
|
23
|
+
# 2. Create a logger which logs messages to STDOUT or STDERR.
|
24
|
+
# log = Logger.new(STDOUT)
|
25
|
+
# log = Logger.new(STDERR)
|
25
26
|
#
|
26
|
-
# 3. Create a logger which
|
27
|
-
# log = Logger.new(
|
27
|
+
# 3. Create a logger for the file which has the specified name.
|
28
|
+
# log = Logger.new('logfile.log')
|
28
29
|
#
|
29
|
-
#
|
30
|
+
# 4. Create a logger which logs messages to a string.
|
31
|
+
# log = Logger.new(STRING)
|
30
32
|
#
|
31
33
|
# == How to log a message ?
|
32
34
|
#
|
33
|
-
# Notice the different methods being used to log messages of various levels.
|
34
|
-
#
|
35
35
|
# Messages lower than log.level are not sent to output.
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
# Default log.level is DEBUG. That means all messages are emitted.
|
36
|
+
# Ranking: DEBUG < INFO < WARN < ERROR < NONE
|
37
|
+
# Default Logger.level is DEBUG. That means all messages are emitted.
|
38
|
+
# Each logger level is initialized with Logger.level and can set a different level.
|
40
39
|
#
|
41
40
|
# 1. Debug message
|
42
41
|
# log.debug "dev info"
|
@@ -65,6 +64,10 @@
|
|
65
64
|
#
|
66
65
|
# log.level = INFO
|
67
66
|
#
|
67
|
+
# == How to set default severity level ?
|
68
|
+
#
|
69
|
+
# Logger.level = NONE
|
70
|
+
#
|
68
71
|
# == How to close a logger ?
|
69
72
|
#
|
70
73
|
# log.close
|
@@ -84,59 +87,59 @@ module Pyer
|
|
84
87
|
INFO = 1
|
85
88
|
WARN = 2
|
86
89
|
ERROR = 3
|
90
|
+
NONE = 4
|
87
91
|
# Severity label for logging. (max 5 char)
|
88
|
-
SEVERITY_LABELS = ['DEBUG', 'INFO ', 'WARN ', 'ERROR']
|
89
|
-
COLOURED_LABELS = ["\033[44mDEBUG\033[m", "\033[42mINFO \033[m", "\033[43mWARN \033[m", "\033[41mERROR\033[m"]
|
92
|
+
SEVERITY_LABELS = ['DEBUG', 'INFO ', 'WARN ', 'ERROR', 'NONE']
|
93
|
+
COLOURED_LABELS = ["\033[44mDEBUG\033[m", "\033[42mINFO \033[m", "\033[43mWARN \033[m", "\033[41mERROR\033[m", ""]
|
90
94
|
end
|
91
95
|
include Severity
|
92
96
|
|
93
97
|
STRING = -1
|
94
98
|
|
95
|
-
|
96
|
-
attr_accessor :level
|
97
|
-
|
98
|
-
# Returns +true+ if the current severity level allows the printing of the message
|
99
|
+
@@default_level = DEBUG
|
99
100
|
|
100
|
-
def
|
101
|
-
|
101
|
+
def self.level=(level)
|
102
|
+
@@default_level = level
|
102
103
|
end
|
103
104
|
|
104
|
-
def
|
105
|
-
|
105
|
+
def self.level
|
106
|
+
@@default_level
|
106
107
|
end
|
107
108
|
|
108
|
-
|
109
|
-
|
110
|
-
end
|
109
|
+
# Logging severity threshold (e.g. <tt>Logger::INFO</tt>).
|
110
|
+
attr_accessor :level
|
111
111
|
|
112
|
-
|
113
|
-
|
114
|
-
end
|
112
|
+
# Prefix can be the class name
|
113
|
+
attr_accessor :prefix
|
115
114
|
|
116
115
|
# Create an instance.
|
117
116
|
# outputs log messages on STDOUT, STDERR, a file or a StringIO
|
118
117
|
#
|
119
|
-
def initialize(logdev =
|
120
|
-
@level =
|
118
|
+
def initialize(logdev = STDOUT)
|
119
|
+
@level = @@default_level
|
120
|
+
@prefix = ""
|
121
121
|
@logdev = $stdout
|
122
122
|
@severity_label = COLOURED_LABELS
|
123
|
-
|
124
|
-
|
125
|
-
return if logdev.nil?
|
126
|
-
if logdev == STRING
|
127
|
-
# no log device implies that messages are stored in a string
|
128
|
-
@logdev = StringIO.new
|
129
|
-
@severity_label = SEVERITY_LABELS
|
123
|
+
if logdev == STDOUT
|
124
|
+
@logdev = $stdout
|
130
125
|
else
|
131
|
-
if logdev ==
|
132
|
-
@logdev = $
|
126
|
+
if logdev == STDERR
|
127
|
+
@logdev = $stderr
|
133
128
|
else
|
134
|
-
if logdev ==
|
135
|
-
|
136
|
-
|
137
|
-
# the default log device is a file name
|
138
|
-
@logdev = File.new(logdev.to_s, 'a')
|
129
|
+
if logdev == STRING
|
130
|
+
# no log device implies that messages are stored in a string
|
131
|
+
@logdev = StringIO.new
|
139
132
|
@severity_label = SEVERITY_LABELS
|
133
|
+
else
|
134
|
+
if logdev.is_a? String
|
135
|
+
# the log device is a file name
|
136
|
+
@logdev = File.new(logdev.to_s, 'a')
|
137
|
+
@severity_label = SEVERITY_LABELS
|
138
|
+
else
|
139
|
+
# the default is no log
|
140
|
+
@level = NONE
|
141
|
+
@logdev = $stderr
|
142
|
+
end
|
140
143
|
end
|
141
144
|
end
|
142
145
|
end
|
@@ -179,15 +182,15 @@ module Pyer
|
|
179
182
|
return if @logdev.nil? || severity < @level
|
180
183
|
message = '' if message.nil?
|
181
184
|
message += block.call if block_given?
|
182
|
-
@logdev.write(Formatter.new.string(@
|
185
|
+
@logdev.write(Formatter.new.string(@prefix, @severity_label[severity], message))
|
183
186
|
end
|
184
187
|
end
|
185
188
|
|
186
189
|
# Formatter class
|
187
190
|
class Formatter
|
188
191
|
FORMAT = "%s [%5d] %12s %s %s\n"
|
189
|
-
def string(
|
190
|
-
format(FORMAT, format_datetime(Time.now), $$,
|
192
|
+
def string(prefix, label, message = nil)
|
193
|
+
format(FORMAT, format_datetime(Time.now), $$, prefix, label, format_message(message))
|
191
194
|
end
|
192
195
|
|
193
196
|
private
|
@@ -222,3 +225,4 @@ DEBUG = Pyer::Logger::DEBUG
|
|
222
225
|
INFO = Pyer::Logger::INFO
|
223
226
|
WARN = Pyer::Logger::WARN
|
224
227
|
ERROR = Pyer::Logger::ERROR
|
228
|
+
NONE = Pyer::Logger::NONE
|