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 argv用法详解
Jan 08 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
Python字典及字典基本操作方法详解
Jan 30 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
Django实现简单网页弹出警告代码
Nov 15 Python
Python中包的用法及安装
Feb 11 Python
python实现UDP协议下的文件传输
Mar 20 Python
Python sklearn中的.fit与.predict的用法说明
Jun 28 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
Jul 01 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
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
javaScript同意等待代码实现心得
2011/01/01 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
python命令行参数sys.argv使用示例
2014/01/28 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
文秘自荐信
2013/10/20 职场文书
早读迟到检讨书
2014/01/24 职场文书
计生工作先进事迹
2014/08/15 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers