@@ -153,9 +153,12 @@ class FileHandler(Handler):
153
153
"""File handler which supports reopening of logs.
154
154
"""
155
155
156
- def __init__ (self , filename , mode = 'ab' ):
156
+ def __init__ (self , filename , mode = 'ab' , fmt = None ):
157
157
Handler .__init__ (self )
158
158
159
+ if fmt is not None :
160
+ self .setFormat (fmt )
161
+
159
162
try :
160
163
self .stream = open (filename , mode )
161
164
except OSError as e :
@@ -187,7 +190,7 @@ def remove(self):
187
190
188
191
class RotatingFileHandler (FileHandler ):
189
192
def __init__ (self , filename , mode = 'ab' , maxBytes = 512 * 1024 * 1024 ,
190
- backupCount = 10 ):
193
+ backupCount = 10 , fmt = None ):
191
194
"""
192
195
Open the specified file and use it as the stream for logging.
193
196
@@ -210,7 +213,7 @@ def __init__(self, filename, mode='ab', maxBytes=512*1024*1024,
210
213
"""
211
214
if maxBytes > 0 :
212
215
mode = 'ab' # doesn't make sense otherwise!
213
- FileHandler .__init__ (self , filename , mode )
216
+ FileHandler .__init__ (self , filename , mode , fmt )
214
217
self .maxBytes = maxBytes
215
218
self .backupCount = backupCount
216
219
self .counter = 0
@@ -388,8 +391,18 @@ def emit(self, record):
388
391
except :
389
392
self .handleError ()
390
393
391
- def getLogger (level = None ):
392
- return Logger (level )
394
+ def getLogger (level = None , fmt = None ):
395
+ logger = Logger (level )
396
+ if fmt is not None :
397
+ # Create a handler with the specified format
398
+ handler = StreamHandler ()
399
+ handler .setFormat (fmt )
400
+ if level is not None :
401
+ handler .setLevel (level )
402
+ else :
403
+ handler .setLevel (logger .level )
404
+ logger .addHandler (handler )
405
+ return logger
393
406
394
407
_2MB = 1 << 21
395
408
@@ -409,6 +422,13 @@ def handle_stdout(logger, fmt):
409
422
handler .setLevel (logger .level )
410
423
logger .addHandler (handler )
411
424
425
+ def handle_stderr (logger , fmt ):
426
+ """Attach a new StreamHandler with stderr handler to an existing Logger"""
427
+ handler = StreamHandler (sys .stderr )
428
+ handler .setFormat (fmt )
429
+ handler .setLevel (logger .level )
430
+ logger .addHandler (handler )
431
+
412
432
def handle_syslog (logger , fmt ):
413
433
"""Attach a new Syslog handler to an existing Logger"""
414
434
handler = SyslogHandler ()
0 commit comments