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