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数据结构树和二叉树简介
Apr 29 Python
Python中的闭包总结
Sep 18 Python
python模仿网页版微信发送消息功能
Feb 24 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
python for 循环获取index索引的方法
Feb 01 Python
Django框架基础模板标签与filter使用方法详解
Jul 23 Python
Python chardet库识别编码原理解析
Feb 18 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
python 发送get请求接口详解
Nov 17 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 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
一个程序下载的管理程序(二)
2006/10/09 PHP
同时提取多条新闻中的文本一例
2006/10/09 PHP
php中的实现trim函数代码
2007/03/19 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
浅谈js的异步执行
2016/10/18 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python生成随机MAC地址
2015/03/10 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Python super()方法原理详解
2020/03/31 Python
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
IRO美国官网:法国服装品牌
2018/03/06 全球购物
Java语言的优势
2015/01/10 面试题
办公室打字员岗位职责
2014/04/16 职场文书
2014年教师节寄语
2014/08/11 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python