Python Logging 模块

logging 模块可以让你以一致的方式记录 debug、info、warning、error 和 exception 消息。

import logging

当消息有不同的重要程度,或者以后可能要写入文件时,应该使用 logging 而不是 print()

基本配置

basicConfig 用来配置默认的日志记录器。

import logging

logging.basicConfig(level=logging.INFO)
logging.info('Application started')
logging.warning('Low disk space')
INFO:root:Application started
WARNING:root:Low disk space

低于配置级别的消息会被忽略:

import logging

logging.basicConfig(level=logging.WARNING)
logging.info('Hidden message')
logging.warning('Visible message')
WARNING:root:Visible message

创建命名记录器

在较大的应用程序中,命名记录器很有用。

import logging

logger = logging.getLogger('app.users')
logger.setLevel(logging.INFO)
print(logger.name)
app.users

格式化消息

你可以自定义输出格式。

import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(levelname)s:%(name)s:%(message)s',
)

logger = logging.getLogger('app')
logger.info('Ready')
INFO:app:Ready

记录异常

except 代码块中,logger.exception 会自动记录 traceback。

import logging

logging.basicConfig(level=logging.ERROR)
logger = logging.getLogger(__name__)

try:
    1 / 0
except ZeroDivisionError:
    logger.exception('Calculation failed')
ERROR:__main__:Calculation failed
Traceback (most recent call last):
...
ZeroDivisionError: division by zero

相关链接