@@ -153,9 +153,12 @@ class FileHandler(Handler):
153153 """File handler which supports reopening of logs.
154154 """
155155
156- def __init__ (self , filename , mode = 'ab' ):
156+ def __init__ (self , filename , mode = 'ab' , fmt = None ):
157157 Handler .__init__ (self )
158158
159+ if fmt is not None :
160+ self .setFormat (fmt )
161+
159162 try :
160163 self .stream = open (filename , mode )
161164 except OSError as e :
@@ -187,7 +190,7 @@ def remove(self):
187190
188191class RotatingFileHandler (FileHandler ):
189192 def __init__ (self , filename , mode = 'ab' , maxBytes = 512 * 1024 * 1024 ,
190- backupCount = 10 ):
193+ backupCount = 10 , fmt = None ):
191194 """
192195 Open the specified file and use it as the stream for logging.
193196
@@ -210,7 +213,7 @@ def __init__(self, filename, mode='ab', maxBytes=512*1024*1024,
210213 """
211214 if maxBytes > 0 :
212215 mode = 'ab' # doesn't make sense otherwise!
213- FileHandler .__init__ (self , filename , mode )
216+ FileHandler .__init__ (self , filename , mode , fmt )
214217 self .maxBytes = maxBytes
215218 self .backupCount = backupCount
216219 self .counter = 0
@@ -388,8 +391,18 @@ def emit(self, record):
388391 except :
389392 self .handleError ()
390393
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
393406
394407_2MB = 1 << 21
395408
@@ -409,6 +422,13 @@ def handle_stdout(logger, fmt):
409422 handler .setLevel (logger .level )
410423 logger .addHandler (handler )
411424
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+
412432def handle_syslog (logger , fmt ):
413433 """Attach a new Syslog handler to an existing Logger"""
414434 handler = SyslogHandler ()
0 commit comments