首页/文章/ 详情

Python中日志的使用

2年前浏览5188

Python日志的功能比较庞大,基础的就是用basic的就logging.basicConfig()就可以,也可以自己去定义一些高端一点的模块,我把代码写在下面,大致的思路就是首先用logging.getLogger创建一个日志对象,用formatter去设置日志的格式,日志对象中处理输出到控制面板的采用logging.StreamHandler,可以单独设置这部分的层次和格式,日志对象中将日志存储在文件中的是FileHandler同样的可以控制层次和格式

import logginglog = logging.getLogger("日志")log.setLevel(logging.DEBUG)formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")sh = logging.StreamHandler()sh.setLevel(logging.INFO)sh.setFormatter(formatter)fh = logging.FileHandler(filename="日志文件")fh.setLevel(logging.INFO)fh.setFormatter(formatter)log.addHandler(sh)log.addHandler(fh)log.info("hello")

作为对比,下面是采用基础配置生成的日志,同样把日志输出在了屏幕和文件中

import loggingbc = logging.basicConfig(level = logging.INFO, filename="./name.log")logging.warning("1232323")

对于第一部分可以单独写成一个类作封装,主要的目的是在一个文件中不想写那么一大堆得日志文件,只需要两句代码实例化之后就调用,当然这里还可以封装的更好,我这里只是演示所以只满足了基础的功能。

import logging
class log1(object):
    def __init__(self):
        self.log = logging.getLogger("日志")
        self.log.setLevel(logging.DEBUG)
        self.formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
        self.sh = logging.StreamHandler()
        self.sh.setLevel(logging.INFO)
        self.sh.setFormatter(self.formatter)
        self.fh = logging.FileHandler(filename="fileaa")
        self.fh.setLevel(logging.INFO)
        self.fh.setFormatter(self.formatter)
        self.log.addHandler(self.sh)
        self.log.addHandler(self.fh)

    def getlog(self):

        return self.log

log2 = log1()   # 实例化
log3 = log2.getlog() # 获取日志对象

log3.info("12323")  #输出日志

控制台的日志


复合材料燃料电池
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-02-21
最近编辑:2年前
蘑菇写手
硕士 | 工程师 签名征集中
获赞 102粉丝 136文章 15课程 11
点赞
收藏
未登录
1条评论
仿真秀61699436544
签名征集中
2年前
学习了
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈