安装
pip3 install loguru
日志level介绍
TRACE (5): 用于记录程序执行路径的细节信息,以进行诊断。 ---logger.trace("xxxx")
DEBUG (10): 开发人员使用该工具记录调试信息。 ---logger.debug("xxxx")
INFO (20): 用于记录描述程序正常操作的信息消息。 ---logger.info("xxxxx")
SUCCESS (25): 类似于INFO,用于指示操作成功的情况。 ---logger.success("xxxxxx")
WARNING (30): 警告类型,用于指示可能需要进一步调查的不寻常事件。 ---logger.warning("xxxxx")
ERROR (40): 错误类型,用于记录影响特定操作的错误条件。 ---logger.error("xxxxx")
CRITICAL (50): 严重类型,用于记录阻止核心功能正常工作的错误条件。---logger.critical("xxxxx")
创建终端输出日志
在代码中引用后,可直接使用,非常方便
>>>from loguru import logger
>>>logger.debug("this is a logger test!")
add方法介绍
在实际应用过程中,一般会需要根据业务需求,将日志输出到固定文件中,设置日志格式,设置日志默认级别,日志回滚,在loguru模块中,都是通过add()方法设置不同的参数实现
add方法参数介绍
add(sink, *, level='DEBUG', format='<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>', filter=None, colorize=None, serialize=False, backtrace=True, diagnose=True, enqueue=False, context=None, catch=True, **kwargs)
- sink: 可以传入一个 file 对象(file-like object),或一个 str 字符串或者 pathlib.Path 对象,或一个方法(coroutine function),或 logging 模块的 Handler(logging.Handler),一般传入文件名
- level: 日志级别,默认DEBUG
- format:日志格式,通过此参数可自定义日志格式及输出的颜色
- filter:用于决定记录日志是否应该发送的接收器
- colorize:是否应将格式化消息中包含的颜色标记转换为用于终端着色的Ansi代码,或以其他方式剥离。
- serialize:在发送到接收器之前 ,是否将记录的消息转换为JSON
- backtrace:格式化的异常跟踪是否应该向上扩展,超出捕获点,以显示生成错误的完整堆栈跟踪。
- diagnose:异常跟踪是否应该显示变量值以简化调试。在生产中,这应该设置为“False”,以避免泄漏敏感数据。
- enqueue:要记录的消息在到达接收器之前是否应该首先通过多进程安全队列,当使用多进程打印日志时,一般把此参数设置为true
- context:日志上下文
- catch:是否应该自动捕获接收器处理日志消息时发生的错误
其他参数kwargs - rotation:日志回滚,达到条件后保留当前日志文件,重新生成新的日志文件,rotation可以是日志文件大小或时间
- retention:旧日志保留多长时间,如:"1 week, 3 days"、"2 months"
- compression:是否对日志进行压缩或归档,用以节省空间,如:gz,zip,tar.gz
日志写入文件
>>>from loguru import logger
>>>logger.add("240613.log")
自定义日志格式
>>> from loguru import logger
>>> logger.add("2401613.log", format="{time:YYYY-MM-DD HH:mm:ss} {level} {module}.{function} : {message}")
任务执行成功后,查看日志文件,与设置格式相同
日志级别配置
>>>from loguru import logger
>>> logger.add("240613.log",format="{time:YYYY-MM-DD HH:mm:ss} {level} {module}.{function} : {message}", level="ERROR")
配置日志级别后,只要在日志中输出比ERROR级别相等或比ERROR级别高的日志
日志回滚及压缩
> > > from loguru import logger
>>> logger.add("240613.log", rotation="200 MB", retention='7 days', compression='zip') --每200M创建一个日志文件,日志保留7天 ,使用zip格式保留历史日志
>>> logger.add("240613.log", rotation="06:00", retention='7 days', compression='tar.gz') --每天6点创建一个日志文件,日志保留7天 ,使用tar.gz格式保留历史日志
>>> logger.add("240613.log", rotation="2 week", retention='7 days', compression='gz') --每2周创建一个日志文件,日志保留7天,使用gz格式保留历史日志