文档:https://loguru.readthedocs.io/en/stable/overview.html#installation
pip install loguru
##终端日志
from loguru import logger
logger.debug("这是一条debug日志")
###输出到文件
from loguru import logger
logger.add("file_{time}.log")
logger.debug("这是一条debug日志")
logger.info("这是一条info日志")
##日志规则
logger.add("file.log", format="{time} {level} {message}", filter="", level="INFO")
#logger.add("file.log", format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}")
logger.debug("这是一条debug日志")
logger.info("这是一条info日志")
##add方法
def add(
self,
sink,
*,
level=_defaults.LOGURU_LEVEL,
format=_defaults.LOGURU_FORMAT,
filter=_defaults.LOGURU_FILTER,
colorize=_defaults.LOGURU_COLORIZE,
serialize=_defaults.LOGURU_SERIALIZE,
backtrace=_defaults.LOGURU_BACKTRACE,
diagnose=_defaults.LOGURU_DIAGNOSE,
enqueue=_defaults.LOGURU_ENQUEUE,
catch=_defaults.LOGURU_CATCH,
**kwargs
):
r"""Add a handler sending log messages to a sink adequately configured.
logger.add("file_1.log", rotation="500 MB") # 文件过大就会重新生成一个文件
logger.add("file_2.log", rotation="12:00") # 每天12点创建新文件
logger.add("file_3.log", rotation="1 week") # 文件时间过长就会创建新文件
logger.add("file_X.log", retention="10 days") # 一段时间后会清空
logger.add("file_Y.log", compression="zip") # 保存zip格式
logger.add("somefile.log", enqueue=True) # 异步写入
logger.add("somefile.log", serialize=True) # 序列化为json
# coding=utf-8
import os
import sys
from loguru import logger
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
log_file_path = os.path.join(BASE_DIR, 'Log/my.log')
err_log_file_path = os.path.join(BASE_DIR, 'Log/err.log')
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
# logger.add(s)
logger.add(log_file_path, rotation="500 MB", encoding='utf-8') # Automatically rotate too big file
logger.add(err_log_file_path, rotation="500 MB", encoding='utf-8',
level='ERROR') # Automatically rotate too big file
logger.debug("That's it, beautiful and simple logging!")
logger.debug("中文日志可以不")
logger.error("严重错误")
logger.info('If you are using Python {}, prefer {feature} of course!', 3.6, feature='f-strings')
@logger.catch
def my_function(x, y, z):
# An error? It's caught anyway!
return 1 / (x + y + z)
原文:https://www.cnblogs.com/g2thend/p/12539923.html