经过多次测试,封装的loguru的日志功能
from loguru import logger as LOGGER
import sys
LEVEL = "DEBUG" # INFO
class MyLogger:
def __init__(self):
LOGGER.remove() # 移除默认的输出
self.logger = LOGGER.opt(depth=1) # 封装层数1
# 添加到文件的输出
self.logger.add('nlp.log',
rotation='00:00', # 每一天生成一个文件
retention='2 days', # 删除2天以前的日志
enqueue=True, # loguru 默认情况下是线程安全的,但它不是多进程安全的。不过如果你需要多进程/异步记录日志,它也能支持,只需要添加一个 enqueue 参数
encoding='utf-8',
level=LEVEL)
# 添加到控制台的输出
self.logger.add(sys.stdout, level=LEVEL)
def info(self, *args, **kwargs):
self.logger.info("%s %s" % (' '.join([str(item) for item in args]), kwargs if bool(kwargs) else ""))
def debug(self, *args, **kwargs):
self.logger.debug("%s %s" % (' '.join([str(item) for item in args]), kwargs if bool(kwargs) else ""))
def warning(self, *args, **kwargs):
self.logger.warning("%s %s" % (' '.join([str(item) for item in args]), kwargs if bool(kwargs) else ""))
def error(self, *args, **kwargs):
self.logger.error("%s %s" % (' '.join([str(item) for item in args]), kwargs if bool(kwargs) else ""))
logger = MyLogger()
if __name__ == '__main__':
logger.info('测试', 'info日志', {"测试": "dict"}, a=1)
logger.debug('测试', 'info日志')
logger.warning('测试', 'info日志')
logger.error('测试', 'info日志')