Python之将日志写入到文件(二十八)

本文介绍了如何使用Python的logging模块进行日志记录,从基础的打印到控制台,再到将日志输出到文件,以便于调试。作者分享了三个版本的代码示例,逐步展示了日志管理的升级过程。

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

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:为了调试python运行程序无法看到实时log问题,将日志写入到文件,方便查看调试。

2.代码示例

<1>.V1.0:打印输出到控制台(print和logging)

import logging
import sys
import os

class My_Log:
    def __init__(self, name):
        self.name = name
        # 创建日志记录器
        logger = logging.getLogger(__name__)
        logger.setLevel(logging.DEBUG)
        
        # 日志等级
        logger.debug('调试信息')
        logger.info('信息')
        logger.warning('警告信息')
        logger.error('错误信息')
        logger.critical('严重错误信息')
        
		count = "123356abc"
        print("format = " + count)

if __name__ == "__main__":
    ml = My_Log("Log")

<2>.V2.0:打印输出到控制台(print和logging)

import logging
import sys
import os

class My_Log:
    def __init__(self, name):
        self.name = name
        # 创建日志记录器
        logger = logging.getLogger(__name__)
        logger.setLevel(logging.DEBUG)

        # 创建控制台处理程序并设置级别为调试
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)

        # 创建格式化程序
        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

        # 将格式化程序添加到ch
        ch.setFormatter(formatter)

        # 将ch添加到记录器
        logger.addHandler(ch)

        # 示例用法
        logger.debug('调试信息')
        logger.info('信息')
        logger.warning('警告信息')
        logger.error('错误信息')
        logger.critical('严重错误信息')

        count = "123356abc"
        print("format = " + count)

if __name__ == "__main__":
    ml = My_Log("Log")

<3>.V3.0:打印输出到文件

import logging
import sys
import os


class My_Log:
    def __init__(self, name):
        self.name = name

    def write_log_to_file(self):
        print("Hello, " + self.name + "!")
        # 创建文件处理程序并设置级别为调试
        logger = logging.getLogger(__name__)
        logger.setLevel(logging.DEBUG)
        fh = logging.FileHandler(os.path.split(os.path.abspath(__file__))[0] + "/03.log")
        fh.setLevel(logging.DEBUG)

        #时间/函数名/打印级别
        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

        # 将格式化程序添加到fh
        fh.setFormatter(formatter)

        # 将fh添加到记录器
        logger.addHandler(fh)
        logger.debug('调试信息')
        logger.info('信息')
        logger.warning('警告信息')
        logger.error('错误信息')
        logger.critical('严重错误信息')


if __name__ == "__main__":
    ml = My_Log("Log")
    #ml.write_log_to_file()
    #print("current_path = " + os.path.split(os.path.abspath(__file__))[0])


注意:log路径在当前目录下:03.log

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android系统攻城狮

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值