python 原生logging配置 适用于任何框架

本文介绍了一种适用于Python项目的通用日志配置方案,该配置基于logging模块,支持日志级别划分,采用文件轮转机制,并提供了详细的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 有自带logging 非常强大,网上也查了很多自配置的logger可以说体验不太好,一旦有import问题,日志重复打印什么的,各种各样的问题,下面记录一种可以适用于任何框架的logging,这个不是自创的,不记得是哪里查到的了。
logg_config.py配置文件

import logging

logging_config = dict(
    version=1,
    formatters={
        'simple': {'format': '%(asctime)s %(levelname)s {path: %(pathname)s Line_No: %(lineno)d} %(message)s'}
    },
    handlers={
        'default_handlers': {'class': 'logging.handlers.RotatingFileHandler',
                             'filename': './logfile/logger.log',
                             'maxBytes': 1024 * 1024 * 20,
                             'backupCount': 50,
                             'level': 'WARNING',
                             'formatter': 'simple',
                             'encoding': 'utf8'}
    },

    root={
        'handlers': ['default_handlers'],
        'level': logging.WARNING,
    },
)

写在配置文件里面,用于在程序最初启动的时候,加载一遍,全局通用。

from logging.config import dictConfig
import logging_config
dictConfig(logging_config.logging_config)

无论在哪个文件使用的正确打开方式

import logging
loger = logging.getLogger("default_handlers")
loger.info("我要打印日志")

日志可以分的很细。看起来特别像django的日志配置,很好用。

<think>我们正在讨论的是运维人员学习Python Django框架是否足够应对工作需求。根据用户提供的引用内容,我们可以分析Django在运维工作中的实际应用场景。 首先,引用[1]提到Django是一个开源的Web应用程序框架,采用MVT(模型-视图-模板)模式,并列举了其主要组件,包括ORM、管理界面、URL设计、模板语言和缓存系统。引用[4]展示了一个使用Django实现的自动化运维后台的例子,其中通过WebSocket实时获取系统信息(如用户数和进程数)并展示。引用[3]则提到了Django在Windows系统上的安装配置。 运维人员的工作通常包括自动化脚本编写、监控系统、批量操作、日志分析等。Django框架可以帮助运维人员构建一个Web化的运维管理平台,实现以下功能: 1. **自动化运维后台**:如引用[4]所示,利用Django可以方便地构建一个实时监控系统,展示服务器状态(如CPU使用率)。通过WebSocket实现实时数据推送。 2. **批量运维管理系统**:引用[1]和[5]都提到了基于Django的批量运维管理系统。Django的ORM可以方便地操作数据库,管理服务器信息、任务记录等。 3. **用户友好的管理界面**:Django自带强大的Admin后台,可以快速生成对模型的管理界面,方便运维人员管理数据(如服务器信息、任务日志等)。 但是,运维工作不仅仅需要Web管理平台,还需要编写脚本、处理系统任务等。Django框架主要用于构建Web应用,而日常运维中可能还需要以下技能: - **脚本编写**:使用Python编写自动化脚本(如文件操作、命令执行等),这部分并不完全依赖Django。 - **系统知识**:对操作系统(Linux/Windows)的深入理解,包括进程管理、网络配置等。 - **其他Python库**:如`psutil`(获取系统信息,如引用[4]中使用)、`paramiko`(SSH连接)、`ansible`(自动化运维工具)等。 因此,学习Django框架对于运维人员来说是有益的,特别是当需要构建一个运维管理平台时。但仅学习Django可能不够,还需要掌握: - Python基础及常用库(如上述的`psutil`、`paramiko`) - 系统知识(Linux命令、网络基础等) - 其他工具(如Ansible、Docker等) 总结:Django框架可以帮助运维人员构建Web化的运维平台,提升运维效率,但日常运维工作还需要掌握Python脚本编写、系统知识和相关工具。所以,学习Django是必要的(尤其是需要开发运维系统时),但并非全部。 §§相关问题§§ 1. Django在自动化运维系统中的具体应用案例有哪些? 2. 运维人员除了Django,还需要掌握哪些Python库? 3. 如何利用Django Admin快速搭建运维数据管理后台?</think>### 运维人员学习 Python Django 框架能否满足日常工作需求? 作为运维人员,学习 Django 框架**能解决部分核心需求,但需结合其他技能才能全面覆盖运维场景**。以下是具体分析: --- #### ✅ **Django 适用的运维场景** 1. **自动化运维平台开发** - 如引用[4]所示,Django 可快速构建运维后台,通过 WebSocket 实时监控系统状态(CPU、进程等)[^4]: ```python @accept_websocket def main(request): data = psutil.cpu_percent(interval=None, percpu=True) request.websocket.send(json.dumps(data)) # 实时推送数据 ``` - 结合 ORM 可管理服务器资产、任务队列等(引用[1])[^1]。 2. **批量任务管理系统** - Django 的模型系统(Model)可设计任务调度逻辑,如批量执行脚本、更新配置(引用[1][4])[^1][^4]。 3. **运维数据可视化** - 模板引擎 + Vue 前端(引用[1][5])可构建仪表盘,展示监控指标、日志分析结果[^1][^5]。 --- #### ⚠️ **Django 的局限性及需补充的技能** 1. **系统层操作需其他库支持** - Django 本身不处理底层系统操作,需结合: - `psutil`(监控资源,如引用[4]) - `paramiko/ansible`(批量远程执行) - `logging` 或 ELK 栈(日志管理)[^4]。 2. **轻量级任务无需 Django** - 简单脚本(如备份、巡检)用纯 Python + Shell 更高效,无需启动 Web 服务。 3. **容器化与云原生运维** - Kubernetes/Docker 管理等需学习容器化工具链(如 kubectl, Docker SDK),超出 Django 范畴。 4. **性能敏感场景** - 高并发监控需异步框架(如 FastAPI)或消息队列(Celery + Redis),Django 同步处理可能成为瓶颈。 --- #### 📊 **运维技能组合建议** | **场景** | **推荐工具** | **Django 适用性** | |------------------------|---------------------------------------|------------------------| | Web 运维平台开发 | Django + Vue + REST Framework | ⭐⭐⭐⭐⭐ 核心优势 | | 批量脚本执行 | Python + Paramiko/Ansible | ⭐⭐ 需结合其他库 | | 实时监控与告警 | Prometheus + Grafana + psutil | ⭐⭐⭐ 需扩展功能 | | 容器化运维 | Kubernetes + Docker SDK | ⭐ 不适用 | | 日志分析 | ELK 栈 + Pandas | ⭐⭐ 需整合外部工具 | --- #### 💡 **结论与学习建议** 1. **Django 是运维开发的重要工具**:特别适合构建**运维管理后台、自动化任务平台**等 Web 化系统(引用[1][4])[^1][^4]。 2. **需扩展技能树**: - 优先掌握 Python 核心库(`os`, `subprocess`, `psutil`) - 学习 Ansible/Paramiko 实现批量操作 - 了解基础前端(Vue/React)以开发交互界面 - 掌握 Linux 系统管理及网络知识 3. **学习路径推荐**: ```mermaid graph LR A[Python基础] --> B[Django核心] B --> C[ORM+Admin后台开发] C --> D[整合psutil/Paramiko] D --> E[构建运维平台] E --> F[扩展异步/容器化技能] ``` > **总结**:Django 是运维人员**开发管理平台的核心工具**,但日常脚本编写、系统操作等需结合 Python 生态的其他库和运维知识。建议以 Django 为起点,逐步扩展技能广度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值