RotatingFileHandler
is used to rotate log files.
Syntax
logging.handlers.RotatingFileHandler(filename,
mode='a', maxBytes=0, backupCount=0, encoding=None, delay=0)
Argument
|
Description
|
filename
|
Full path
of the file name.
|
mode
|
By default
file open in append mode. You can specify the mode.
|
maxBytes
|
When the
file size about to reach maxBytes, the file is closed and a new file is
silently opened for output.
|
backupCount
|
If
backupCount is non-zero, the system will save old log files by appending the
extensions ‘.1’, ‘.2’ etc., If backupCount is 3 and file name is temp.log,
then, when this file is filled, it is closed and renamed to temp.log.1,
temp.log.2, temp.log.3.
|
encoding
|
File
opened with given encoding
|
delay
|
If delay
is true, then file opening is deferred until the first call to emit().
|
Following
are the methods provided by RotatingFileHandler class.
Method
|
Description
|
doRollover()¶
|
Does
rollover.
|
emit(record)
|
Write
record to a file.
|
Note:
If either of
maxBytes or backupCount is zero, rollover never occurs.
import logging import glob import logging.handlers #Define logger logger = logging.getLogger(__name__) logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s') LOG_FILENAME="/Users/harikrishna_gurram/temp.log" #Define handler to write to standard output handler = logging.handlers.RotatingFileHandler(LOG_FILENAME, maxBytes=1000, backupCount=10) formatter = logging.Formatter('[%(levelname)s] %(message)s') handler.setFormatter(formatter) handler.setLevel(logging.DEBUG) #Adding handler to logger logger.addHandler(handler) logger.propagate = False def logMessages(): logger.debug("Debug message") logger.info("Information Message") logger.warn("Warning Message") logger.error("Error Message") logger.critical("Critical Message") if(__name__=="__main__"): for i in range(1000): logMessages() # See what files are created logfiles = glob.glob('%s*' % LOG_FILENAME) for filename in logfiles: print(filename)
Run above
program, you will get following output.
/Users/harikrishna_gurram/temp.log /Users/harikrishna_gurram/temp.log.1 /Users/harikrishna_gurram/temp.log.10 /Users/harikrishna_gurram/temp.log.2 /Users/harikrishna_gurram/temp.log.3 /Users/harikrishna_gurram/temp.log.4 /Users/harikrishna_gurram/temp.log.5 /Users/harikrishna_gurram/temp.log.6 /Users/harikrishna_gurram/temp.log.7 /Users/harikrishna_gurram/temp.log.8 /Users/harikrishna_gurram/temp.log.9
Above
program creates 10 log files using rotation.
No comments:
Post a Comment