python loguru如何整合到Django项目中 并指定级别只记录相应级别日志到文件中

2021-03-18 14:38发布

from loguru import loggerlogger.add(            sink=logs/info.log,            level=INFO,  # 日志级别  ...

from loguru import logger


logger.add(

            sink="logs/info.log",

            level="INFO",  # 日志级别

            format="{time} {function}  :  {message}",

            rotation="1 GB",  # 滚动记录日志文件 日志大小

            retention="10 days",  # 指定日志保留时长

            compression="zip",  # 配置文件压缩格式

            encoding='utf-8',  # 解决中文乱码

            # serialize=True,  # 结构化日志

            enqueue=True,  # 默认线程安全 指定异步和多进程安全

            backtrace=True,

            diagnose=True

        )


1条回答
studentaaa
2021-03-27 08:38

在使用python的时候方便且高效地管理输出到控制台的信息,如通过一处的设置,屏蔽掉所有的debug信息,只留下正常的info信息,不需要重复地将所有地方的debug信息都手动删除,并指定级别只记录相应级别日志到文件中

from loguru import logger

logger.info("info")

logger.warning("warning")

logger.debug("debug")


1

2

3

4

5

对语句如上,输出是这样的:



简单,漂亮


二、这一篇要讲的具体是:

在使用loguru的时候,能够实现对输出到控制台的日志级别的控制



比如,设置为INFO级别的时候,DEBUG级别的日志将不再输出,控制台上将屏蔽掉写下的logger.debug(“debug”)信息,对于上面的代码,在配置后输出就变成了




而配置的代码也很简单


import sys

logger.remove()#删去import logger之后自动产生的handler,不删除的话会出现重复输出的现象

handler_id = logger.add(sys.stderr, level="INFO")#添加一个可以修改控制的handler


1

2

3

4

将语句放在程序开头或者import之后,修改级别的时候修改“INFO”为“DEBUG”或者相应的级别即可,

这样,输出到控制台的日志级别就修改好了,而输出到文件的日志级别控制网上有很多,这里同样不再赘述

一周热门 更多>