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脚本对Linux服务器进行监控的教程
Apr 02 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
Python实现修改文件内容的方法分析
Mar 25 Python
pandas数值计算与排序方法
Apr 12 Python
《与孩子一起学编程》python自测题
May 27 Python
python实现决策树分类
Aug 30 Python
python调用自定义函数的实例操作
Jun 26 Python
python speech模块的使用方法
Sep 09 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
详解Python模块化编程与装饰器
Jan 16 Python
python中subplot大小的设置步骤
Jun 28 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 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
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
php中smarty区域循环的方法
2015/06/11 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
js实现随机抽奖
2020/03/19 Javascript
vue实现登录拦截
2020/06/29 Javascript
Python实现JSON反序列化类对象的示例
2018/01/31 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
new修饰符是起什么作用
2015/06/28 面试题
init进程的作用
2012/04/12 面试题
文字自荐书范文
2014/02/10 职场文书
个人贷款担保书
2014/04/01 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
公司放假通知范文
2015/04/14 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
linux目录管理方法介绍
2022/06/01 Servers