【Python-django后端开发】logging日制配置详解!!!
官方文档请查看:https://docs.djangoproject.com/en/1.11/topics/logging/
1. 配置工程日志,在setting.py里,如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | LOGGING = { 'version' : 1 , 'disable_existing_loggers' : False , # 是否禁用已经存在的日志器 'formatters' : { # 日志信息显示的格式 'verbose' : { 'format' : '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s' }, 'simple' : { 'format' : '%(levelname)s %(module)s %(lineno)d %(message)s' }, }, 'filters' : { # 对日志进行过滤 'require_debug_true' : { # django在debug模式下才输出日志 '()' : 'django.utils.log.RequireDebugTrue' , }, }, 'handlers' : { # 日志处理方法 'console' : { # 向终端中输出日志 'level' : 'INFO' , 'filters' : [ 'require_debug_true' ], 'class' : 'logging.StreamHandler' , 'formatter' : 'simple' }, 'file' : { # 向文件中输出日志 'level' : 'INFO' , 'class' : 'logging.handlers.RotatingFileHandler' , 'filename' : os.path.join(BASE_DIR, 'logs/liuxinyu.log' ), # 日志文件的位置 'maxBytes' : 300 * 1024 * 1024 , 'backupCount' : 10 , 'formatter' : 'verbose' }, }, 'loggers' : { # 日志器 'django' : { # 定义了一个名为django的日志器 'handlers' : [ 'console' , 'file' ], # 可以同时向终端与文件中输出日志 'propagate' : True , # 是否继续传递日志信息 'level' : 'INFO' , # 日志器接收的最低日志级别 }, } } |
2. 准备日志文件目录,在工程文件下创建logs文件夹,在logs文件夹里创建liuxinyu.log文件(根据上面的配置来的)
3. 日志记录器的使用
不同的应用程序所定义的日志等级可能会有所差别,分的详细点的会包含以下几个等级:
- FATAL/CRITICAL = 重大的,危险的
- ERROR = 错误
- WARNING = 警告
- INFO = 信息
- DEBUG = 调试
- NOTSET = 没有设置
1 2 3 4 5 6 7 8 | import logging # 创建日志记录器 logger = logging.getLogger( 'django' ) # 输出日志 logger.debug( '测试logging模块debug' ) logger.info( '测试logging模块info' ) logger.error( '测试logging模块error' ) |
4. 取消Git记录工程日志
- 建立代码仓库时,生成的忽略文件中已经默认忽略掉了*.log。
- logs文件目录需求被Git仓库记录和管理。
- 当把
*.log
都忽略掉后,logs文件目录为空。 - 但是,Git是不允许提交一个空的目录到版本库上的。
解决:
- 在空文件目录中建立一个.gitkeep文件,然后即可提交。
多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。
标签:
Django
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App