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中的测试模块unittest和doctest的使用教程
Apr 14 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
python清除字符串中间空格的实例讲解
May 11 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
python实现抖音点赞功能
Apr 07 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
PyQt5实现简单的计算器
May 30 Python
pandas分批读取大数据集教程
Jun 06 Python
Python远程linux执行命令实现
Nov 11 Python
python中str内置函数用法总结
Dec 27 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
长波有什么东西
2021/03/01 无线电
php中取得URL的根域名的代码
2011/03/23 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
javascript实现简单的Map示例介绍
2013/12/23 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
python用户管理系统
2018/03/13 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
简历自我评价模版
2014/01/31 职场文书
竞聘书模板
2014/03/31 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
老公出轨后的保证书
2015/05/08 职场文书
化工厂员工工作总结
2015/10/15 职场文书
合作协议书格式范本
2016/03/21 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle