27 lines
1.1 KiB
Python
27 lines
1.1 KiB
Python
import logging
|
|
from logging import handlers
|
|
|
|
|
|
class Logger(object):
|
|
level_relations = {
|
|
'debug': logging.DEBUG,
|
|
'info': logging.INFO,
|
|
'warning': logging.WARNING,
|
|
'error': logging.ERROR,
|
|
'crit': logging.CRITICAL
|
|
}
|
|
|
|
def __init__(self, filename, level='info', when='D', backCount=3,
|
|
fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):
|
|
self.logger = logging.getLogger(filename)
|
|
format_str = logging.Formatter(fmt) # set log format
|
|
self.logger.setLevel(self.level_relations.get(level)) # set log level
|
|
sh = logging.StreamHandler() # output to terminal
|
|
sh.setFormatter(format_str) # set format for terminal log
|
|
th = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=backCount,
|
|
encoding='utf-8') # log into file
|
|
|
|
th.setFormatter(format_str) # set format for file log
|
|
self.logger.addHandler(sh) # output to terminal
|
|
self.logger.addHandler(th) # output to file
|