loguru日志信息

发布时间 2023-05-20 16:00:03作者: 无情の王子

loguru库使用

loguru 库中,日志级别从低到高依次为:

  1. TRACE:用于追踪代码中的详细信息。
  2. DEBUG:用于调试和开发过程中的详细信息。
  3. INFO:用于提供一般性的信息,表明应用程序正在按预期运行。
  4. SUCCESS:用于表示成功完成的操作。
  5. WARNING:用于表示潜在的问题或警告,不会导致应用程序的中断或错误。
  6. ERROR:用于表示错误,可能会导致应用程序的中断或异常行为。
  7. CRITICAL:用于表示严重错误,通常与应用程序无法继续执行相关。

当设置日志级别时,只有该级别及以上级别的日志消息才会被记录。例如,如果将日志级别设置为 INFO,那么只有 INFOSUCCESSWARNINGERRORCRITICAL 级别的日志消息会被记录。

你可以根据需要选择适当的日志级别,以便记录和获取所需的信息。通常,在开发和调试阶段,可以使用较低的级别(如 DEBUG)以获得更详细的日志信息,而在生产环境中,可以使用较高的级别(如 INFO 或更高级别)来减少日志量并关注关键信息和错误。

当你设置日志级别时,只有该级别及以上级别的日志消息才会被记录。如果不显式设置日志级别,则默认为'DEBUG'级别,这意味着所有级别的日志消息都会被记录。

举个例子,如果你不指定日志级别,那么logger.add()方法的level参数将默认为'DEBUG',也就是所有级别的日志消息都会被记录。因此,以下两种方式是等效的:

from loguru import logger
from config.demo import case_log

def get_log(file):
    logger.add(sink=file, encoding='utf-8', level='ERROR')
    return logger

if __name__ == '__main__':
    logger = get_log(case_log)
    logger.info("测试正在执行")
    logger.debug('调试')
    logger.warning('警告')
    logger.error('错误')

方式一(不指定日志级别):

logger.add(sink=file, encoding='utf-8')

方式二(指定日志级别为DEBUG):

logger.add(sink=file, encoding='utf-8', level='DEBUG')

两种方式都会记录所有级别的日志消息。如果你只想记录特定级别及以上级别的日志消息,可以将level参数设置为相应的级别,例如'INFO''WARNING''ERROR',具体取决于你的需求。

再举一个例子

当设置日志级别时,你可以使用以下代码示例来说明不同级别的日志记录:

from loguru import logger

# 设置日志级别为 DEBUG
logger.add(sink='logs.log', encoding='utf-8', level='DEBUG')

def example_function():
    logger.debug("这是一条 DEBUG 级别的日志消息")
    logger.info("这是一条 INFO 级别的日志消息")
    logger.warning("这是一条 WARNING 级别的日志消息")
    logger.error("这是一条 ERROR 级别的日志消息")
    logger.critical("这是一条 CRITICAL 级别的日志消息")

example_function()

在上述代码中,我们将日志级别设置为 DEBUG,然后在 example_function 函数中记录了不同级别的日志消息。根据日志级别的高低,每个日志消息的记录情况如下:

  • logger.debug:由于日志级别设置为 DEBUG,这条消息会被记录。
  • logger.info:由于日志级别高于 DEBUG,这条消息也会被记录。
  • logger.warning:这条消息级别高于 DEBUGINFO,因此会被记录。
  • logger.error:这条消息级别高于 DEBUGINFOWARNING,因此会被记录。
  • logger.critical:这条消息是最高级别的,因此无论日志级别设置如何,都会被记录。

注意,上述代码中将日志消息记录到了 logs.log 文件中,你可以根据需要修改文件路径和名称。

通过调整日志级别,你可以控制记录哪些级别的日志消息,以便在不同情况下获取所需的信息。