本文以一段日志功能为例
python装饰器部分
def catch_error(error_position: str):
def get_params(func):
def save_error(*args):
try:
logger.debug(error_position)
return func(*args)
except:
logger_error.error("-----错误发生位置:"+error_position+"----具体内容如下:\n"+traceback.format_exc())
pass
return save_error
return get_params
日志配置文件
[loggers]
keys = root,example01,example02
[logger_root]
level = DEBUG
handlers = hand01,hand02
[logger_example01]
handlers = hand01,hand02
qualname = example01
propagate = 0
[logger_example02]
handlers = hand01,hand03
qualname = example02
propagate = 0
[handlers]
keys = hand01,hand02,hand03
[handler_hand01]
class = StreamHandler
level = INFO
formatter = form02
args = (sys.stderr,)
[handler_hand02]
class = FileHandler
level = DEBUG
formatter = form01
args = ('./process.log', 'a')
[handler_hand03]
class = handlers.RotatingFileHandler
level = INFO
formatter = form02
args = ('./log_error.log', 'a')
[formatters]
keys = form01,form02
[formatter_form01]
format = %(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
datefmt = %a, %d %b %Y %H:%M:%S
[formatter_form02]
format = %(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
datefmt = %a, %d %b %Y %H:%M:%S