学会python——生成日志信息(python实例十二)

目录

1、认识Python

2、环境与工具

[2.1 python环境](#2.1 python环境)

[2.2 Visual Studio Code编译](#2.2 Visual Studio Code编译)

3、生成日志信息

[3.1 代码构思](#3.1 代码构思)

[3.2 代码示例](#3.2 代码示例)

[3.3 运行结果](#3.3 运行结果)

4、总结


1、认识Python

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象脚本语言

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字或标点符号,它具有比其他语言更有特色的语法结构。

2、环境与工具

2.1 python环境

在Windows上使用命令行窗口查看所安装的python版本

复制代码
python --version

2.2 Visual Studio Code编译

Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git 版本控制系统。

3、生成日志信息

3.1 代码构思

先是新建了一个写日志的类,使用creat_logger()函数生成了一个日志记录器,然后直接向日志记录器中写入日志。

代码中通过运行一个会报错的程序来实现日志中警告信息的写入。

3.2 代码示例

复制代码
import logging
import os

# 配置日志记录
class CreaterLogger:
    def __init__(self, filename, formatter, level):
        self.filename = filename
        self.formatter = formatter
        self.level = level

    def creat_logger(self, logger_name):
        # 创建日志记录器
        log_obj = logging.getLogger(logger_name)
        # 设置日志输出级别
        log_obj.setLevel(self.level)
        handler = logging.FileHandler(self.filename, mode='w', encoding='utf-8')
        handler.setLevel(self.level)
        formatter = logging.Formatter(self.formatter)
        handler.setFormatter(formatter)
        log_obj.addHandler(handler)
        return log_obj

if __name__ == "__main__":
    # 设置日志文件名
    v_formatter = "时间:%(asctime)s || 文件名:%(filename)s || 行号:%(lineno)d || 级别:%(levelname)s || 内容:%(message)s"
    v_filename = 'test_logging.log'
    v_level = logging.DEBUG

    logger_creator = CreaterLogger(v_filename, v_formatter, v_level)
    logger_obj = logger_creator.creat_logger('my_logger')

    logger_obj.debug('这是一条debug级别的日志信息')
    logger_obj.info('这是一条info级别的日志信息')
    logger_obj.warning('这是一条warning级别的日志信息')

    try:
        # 示例代码块,演示异常日志记录,下面的不能运算,会报错,进而会捕获到异常
        1 / 0
    except Exception as e:
        logger_obj.exception('捕获到一个异常')

    print(f"日志信息已写入到 {os.path.abspath(v_filename)}")

3.3 运行结果

4、总结

该代码展示了程序运行过程中报错反馈,方便理解程序泛红、警告反馈的具体实现。

相关推荐
Brduino脑机接口技术答疑4 分钟前
脑机接口数据处理连载(二) 数据源头解析:脑电信号的采集原理与数据特性
人工智能·python·算法·数据分析·脑机接口
白露与泡影4 分钟前
Java面试题2025最新、最全、最细(附答案)
java·开发语言
Wise玩转AI10 分钟前
Day 25|智能体的“可观察性(Observability)体系”
人工智能·python·ai·chatgpt·ai智能体
幸运小圣10 分钟前
递归(Recursion)快速上手指南【JS例子】
开发语言·javascript·ecmascript
p***924813 分钟前
Python使用PyMySQL操作MySQL完整指南
数据库·python·mysql
宠..20 分钟前
安装 Qt VS Tool 插件
开发语言·qt
kali-Myon30 分钟前
NewStarCTF2025-Week5-Web
java·python·安全·web安全·php·web·ctf
未来之窗软件服务32 分钟前
幽冥大陆(三十九)php二维数组去重——东方仙盟筑基期
android·开发语言·算法·php·仙盟创梦ide·东方仙盟·东方仙盟sdk
DFT计算杂谈35 分钟前
Abinit-10.4.7安装教程
linux·数据库·python·算法·matlab
程序猫.35 分钟前
Java零基础入门:集合进阶(下)
java·开发语言