日志配置需设置级别、格式和输出目标,推荐使用字典配置管理。1. 设置日志级别为DEBUG或INFO以控制输出;2. 自定义格式包含时间、级别、模块名等;3. 输出到文件和控制台;4. 创建独立logger实例避免全局调用;5. 使用dictConfig集中管理复杂配置,防止重复handler和错误传播。

Python 日志记录器(logging)的配置是项目开发中非常关键的一环,它帮助开发者追踪程序运行状态、排查错误和监控系统行为。合理的配置能让日志输出清晰、结构化,并便于后期分析。
Python 的 logging 模块提供了五个标准日志级别,按严重性递增:
默认的日志级别是 WARNING,低于该级别的日志不会被记录。可以通过以下方式设置:
import logging
<p>logging.basicConfig(level=logging.INFO)
logging.info("这是一条 info 级别的日志")</p>你可以自定义日志的输出格式,包括时间、日志级别、模块名、消息内容等。同时可以指定输出到控制台或文件。
立即学习“Python免费学习笔记(深入)”;
import logging
<p>logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler("app.log"),
logging.StreamHandler() # 输出到控制台
]
)</p>上面的配置会将日志同时写入 app.log 文件并打印到终端。format 中常用字段:
建议不要直接使用 logging.debug() 等全局方法,而是创建独立的 logger 实例,便于模块化管理。
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
<h1>防止重复添加 handler</h1><p>if not logger.handlers:
handler = logging.StreamHandler()
formatter = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)</p><p>logger.info("来自 %s 模块的信息", <strong>name</strong>)</p>对于复杂项目,推荐使用字典方式集中配置日志,提升可维护性。
import logging.config
<p>LOGGING_CONFIG = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'detailed': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'INFO',
'formatter': 'simple',
'stream': 'ext://sys.stdout'
},
'file': {
'class': 'logging.FileHandler',
'level': 'DEBUG',
'formatter': 'detailed',
'filename': 'debug.log',
'mode': 'a'
}
},
'loggers': {
'myapp': {
'level': 'DEBUG',
'handlers': ['console', 'file'],
'propagate': False
}
},
'root': {
'level': 'WARNING',
'handlers': ['file']
}
}</p><p>logging.config.dictConfig(LOGGING_CONFIG)
logger = logging.getLogger('myapp')
logger.debug("这是从 myapp 记录器输出的调试信息")</p>基本上就这些。合理配置 logging 能极大提升程序可观测性,关键是根据实际需求选择合适的级别、格式和输出方式。不复杂但容易忽略细节,比如避免重复 handler 或正确设置 propagate。
以上就是python日志记录器的配置的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号