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的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
python模块之paramiko实例代码
Jan 31 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
python+selenium实现自动抢票功能实例代码
Nov 23 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
python实现多进程通信实例分析
Sep 01 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
python 实现方阵的对角线遍历示例
Nov 29 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
详解python方法之绑定方法与非绑定方法
Aug 17 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
Add Formatted Text to a Word Document
2007/06/15 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
python异常触发及自定义异常类解析
2019/08/06 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
Python用SSH连接到网络设备
2021/02/18 Python
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
机关门卫岗位职责
2013/12/30 职场文书
运动会入场词100字
2014/02/06 职场文书
汉语言文学职业规划
2014/02/14 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
校园广播稿精选
2014/10/01 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
python热力图实现的完整实例
2022/06/25 Python