logging level级别介绍

1. logging level级别介绍

在编写代码时,我们通常需要在代码中留下一些记录,以协助我们查找和修复错误。而 logging 模块为我们提供了一种方便的方式,能够在代码中添加日志语句,以便在程序运行时追踪问题。

当我们使用 logging 模块时,可以设置一个日志级别,来控制哪些信息会被记录下来,哪些信息被过滤掉。下面将介绍一些常用的日志级别。

1.1 DEBUG级别

DEBUG 是最详细的日志级别,通常只有在调试时才会使用。它会记录详细的信息,如变量的值、函数的调用等。如果我们在程序中设置了 DEBUG 级别,那么除非我们明确指定只打印指定级别以及更高级别的信息,否则程序中所有级别的信息都会被打印出来。

import logging

logging.basicConfig(level=logging.DEBUG)

def foo():

logging.debug('Enter foo()')

logging.info('Input: {}'.format(1))

logging.warning('This is a warning!')

logging.error('This is an error!')

logging.critical('This is critical!')

上面的示例中,我们设置了 DEBUG 级别,并在函数中添加了各级别的日志信息。当我们运行程序时,会打印出所有级别的信息:

Enter foo()

Input: 1

This is a warning!

This is an error!

This is critical!

可以看到,所有级别的信息都被打印到了控制台。

1.2 INFO级别

INFO 级别是默认的日志记录级别,通常用来记录程序正常运行时的信息。如果我们设置了 INFO 级别,那么 debug 级别的信息将被忽略,只有 INFO、WARNING、ERROR、CRITICAL 级别的信息才会被记录下来。

import logging

logging.basicConfig(level=logging.INFO)

def foo():

logging.debug('Enter foo()')

logging.info('Input: {}'.format(1))

logging.warning('This is a warning!')

logging.error('This is an error!')

logging.critical('This is critical!')

在上面的代码中,我们设置了 INFO 级别,并添加了各级别的日志信息。当我们运行程序时,会打印出 INFO、WARNING、ERROR、CRITICAL 级别的日志信息:

Input: 1

This is a warning!

This is an error!

This is critical!

可以看到,只有 INFO 级别及以上的信息被打印出来。

1.3 WARNING级别

WARNING 级别通常用来记录某些意外但不是严重错误的信息。如果我们设置了 WARNING 级别,那么仅有WARNING、ERROR、CRITICAL级别的信息才会被记录下来。

import logging

logging.basicConfig(level=logging.WARNING)

def foo():

logging.debug('Enter foo()')

logging.info('Input: {}'.format(1))

logging.warning('This is a warning!')

logging.error('This is an error!')

logging.critical('This is critical!')

在上面的代码中,我们设置了 WARNING 级别,并添加了各级别的日志信息。当我们运行程序时,会只打印出 WARNING、ERROR、CRITICAL 级别的信息:

This is a warning!

This is an error!

This is critical!

可以看到,只有 WARNING 级别及以上的信息被打印出来。

1.4 ERROR级别

ERROR 级别用于记录错误信息。如果我们设置了 ERROR 级别,那么仅有 ERROR 和 CRITICAL 级别的信息才会被记录下来。

import logging

logging.basicConfig(level=logging.ERROR)

def foo():

logging.debug('Enter foo()')

logging.info('Input: {}'.format(1))

logging.warning('This is a warning!')

logging.error('This is an error!')

logging.critical('This is critical!')

在上面的代码中,我们设置了 ERROR 级别,并添加了各级别的日志信息。当我们运行程序时,会只打印出 ERROR 和 CRITICAL 级别的信息:

This is an error!

This is critical!

可以看到,只有 ERROR 级别及以上的信息被打印出来。

1.5 CRITICAL级别

CRITICAL 级别用于记录严重错误信息。如果我们设置了 CRITICAL 级别,那么仅有 CRITICAL 级别的信息才会被记录下来。

import logging

logging.basicConfig(level=logging.CRITICAL)

def foo():

logging.debug('Enter foo()')

logging.info('Input: {}'.format(1))

logging.warning('This is a warning!')

logging.error('This is an error!')

logging.critical('This is critical!')

在上面的代码中,我们设置了 CRITICAL 级别,并添加了各级别的日志信息。当我们运行程序时,会只打印出 CRITICAL 级别的信息:

This is critical!

可以看到,只有 CRITICAL 级别的信息被打印出来。

2. 总结

在编写代码时,不仅要考虑实现功能,也要考虑如何调试和追踪问题。日志功能便是解决这个问题的一种方式。无论您是想记录调用链、提示用户某种操作需要调整,还是发现异常,都可以使用日志来追踪您的应用。

本文介绍了常用的几种日志级别:DEBUG、INFO、WARNING、ERROR、CRITICAL。正确地设置日志级别,不仅可以帮助您更好地理解应用程序运行时发生了什么,而且还可以减少不必要的日志信息和存储空间。

后端开发标签