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字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
Python使用稀疏矩阵节省内存实例
Jun 27 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
Python实现的多线程http压力测试代码
Feb 08 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
对python中dict和json的区别详解
Dec 18 Python
python获取本机所有IP地址的方法
Dec 26 Python
Python中的元组介绍
Jan 28 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
python读取mysql数据绘制条形图
Mar 25 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 Python
Python中 range | np.arange | np.linspace三者的区别
Mar 22 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
php计算整个目录大小的方法
2015/06/01 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
js实现二级导航功能
2017/03/03 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
Python自定义线程类简单示例
2018/03/23 Python
python+opencv识别图片中的圆形
2020/03/25 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
python的继承知识点总结
2018/12/10 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
python中p-value的实现方式
2019/12/16 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
Android interview questions
2016/12/25 面试题
电子商务网站的创业计划书
2014/01/05 职场文书
关于迟到的检讨书
2014/01/26 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
市场营销专业求职信
2014/06/17 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python