Python 配置日志(Logging)

示例:

python 复制代码
import logging

class MyApp:
    def __init__(self):
        # 1. 配置日志(通常只在程序启动时配置一次)
        logging.basicConfig(
            level=logging.INFO,
            format='%(asctime)s - %(levelname)s - %(message)s'
        )
        # 2. 获取当前模块的 Logger
        self.logger = logging.getLogger(__name__)

    def run(self):
        self.logger.info("程序开始运行")
        
        try:
            # 模拟一些操作
            result = 10 / 2
            self.logger.info(f"计算结果是: {result}")
            
            # 模拟一个警告
            if result > 4:
                self.logger.warning("结果大于 4,请注意!")
                
        except Exception as e:
            self.logger.error(f"发生了一个错误: {e}")
            
        self.logger.info("程序结束运行")

# 启动程序
if __name__ == "__main__":
    app = MyApp()
    app.run()

说明:

代码片段 作用说明
logging.basicConfig(...) 全局配置日志的基本参数。
level=logging.INFO 设置日志的最低 输出级别。只有 INFO 级别及以上(如 WARNING, ERROR, CRITICAL)的日志才会被打印。
format='%(asctime)s - %(levelname)s - %(message)s' 定义日志的输出格式: - %(asctime)s: 时间戳 - %(levelname)s: 日志级别(如 INFO, ERROR) - %(message)s: 具体的日志内容
self.logger = logging.getLogger(__name__) 获取一个 Logger 实例。通常在类中使用,__name__ 会作为日志的名称(通常是模块名)。

可设置级别:

相关推荐
羲云网络2 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
张张123y2 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶5 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
FRing035 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
橙橙笔记5 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
雪落漂泊5 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
小小张说故事5 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
波力海苔夹心脆6756 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩6 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
天天被压力7 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python