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实现删除文件中含“指定内容”的行示例
Jun 09 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
Python实现简单的语音识别系统
Dec 13 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
django 将model转换为字典的方法示例
Oct 16 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
python创建与遍历List二维列表的方法
Aug 16 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 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
linux下编译安装memcached服务
2014/08/03 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
详解vue-cli3多环境打包配置
2019/03/28 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
pytorch permute维度转换方法
2018/12/14 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
元旦晚会邀请函
2014/01/27 职场文书
《桥》教学反思
2014/04/09 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
停车场管理协议书范本
2014/10/08 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书