python 如何对logging日志封装


Posted in Python onDecember 02, 2020

作者:做梦的人(小姐姐)
出处:https://www.cnblogs.com/chongyou/

因为最近在做平台,发现有同事,使用django封装了日志模块,看样子很简单,准备自己单独做了一个日志封装模板,对于python不熟练的我,封装部分参考了多个博主的内容,形成自己的日志模块,内容如下:

封装部分

创建一个logutil2的py文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: zhangjun
# @Date  : 2018/7/26 9:20
# @Desc  : Description
 
import logging
import logging.handlers
import os
import time
 
class logs(object):
    def __init__(self):
        self.logger = logging.getLogger("")
        # 设置输出的等级
        LEVELS = {'NOSET': logging.NOTSET,
                  'DEBUG': logging.DEBUG,
                  'INFO': logging.INFO,
                  'WARNING': logging.WARNING,
                  'ERROR': logging.ERROR,
                  'CRITICAL': logging.CRITICAL}
        # 创建文件目录
        logs_dir="logs2"
        if os.path.exists(logs_dir) and os.path.isdir(logs_dir):
            pass
        else:
            os.mkdir(logs_dir)
        # 修改log保存位置
        timestamp=time.strftime("%Y-%m-%d",time.localtime())
        logfilename='%s.txt' % timestamp
        logfilepath=os.path.join(logs_dir,logfilename)
        rotatingFileHandler = logging.handlers.RotatingFileHandler(filename =logfilepath,
                                                                   maxBytes = 1024 * 1024 * 50,
                                                                   backupCount = 5)
        # 设置输出格式
        formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')
        rotatingFileHandler.setFormatter(formatter)
        # 控制台句柄
        console = logging.StreamHandler()
        console.setLevel(logging.NOTSET)
        console.setFormatter(formatter)
        # 添加内容到日志句柄中
        self.logger.addHandler(rotatingFileHandler)
        self.logger.addHandler(console)
        self.logger.setLevel(logging.NOTSET)
 
    def info(self, message):
        self.logger.info(message)
 
    def debug(self, message):
        self.logger.debug(message)
 
    def warning(self, message):
        self.logger.warning(message)
 
    def error(self, message):
        self.logger.error(message)

2.调用模块

创建另外一个py文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: zhangjun
# @Date  : 2018/7/26 9:21
# @Desc  : Description
import logging
logger = logging.getLogger(__name__)
import logutil2
 
if __name__ == '__main__':
    logger=logutil2.logs()
    logger.info("this is info")
    logger.debug("this is debug")
    logger.error("this is error")
    logger.warning("this is warning")

结果展示:

1.控制台输出

python 如何对logging日志封装

2.日志文件展示

创建目录

python 如何对logging日志封装

日志文件的写入

python 如何对logging日志封装

以上就是python 如何对logging日志封装的详细内容,更多关于python logging日志封装的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python爬虫的工作原理
Mar 05 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
django 多数据库及分库实现方式
Apr 01 Python
python list的index()和find()的实现
Nov 16 Python
使用Python+Appuim 清理微信的方法
Jan 26 Python
python3中确保枚举值代码分析
Dec 02 #Python
python使用yaml 管理selenium元素的示例
Dec 01 #Python
python3处理word文档实例分析
Dec 01 #Python
python3中布局背景颜色代码分析
Dec 01 #Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 #Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 #Python
python录音并调用百度语音识别接口的示例
Dec 01 #Python
You might like
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
javascript 读取图片文件的大小
2009/06/25 Javascript
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
纯JS实现轮播图
2017/02/22 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
python读取oracle函数返回值
2016/07/18 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
详解django三种文件下载方式
2018/04/06 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
python与pycharm有何区别
2020/07/01 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
英语专业个人求职自荐信
2013/09/21 职场文书
酒店经理职责
2014/01/30 职场文书
经营场所证明范本
2015/06/19 职场文书
2015年除四害工作总结
2015/07/23 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
python实现Nao机器人的单目测距
2021/09/04 Python