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和C语言混合编程实例
Jun 04 Python
python中的函数用法入门教程
Sep 02 Python
使用python实现rsa算法代码
Feb 17 Python
Python OpenCV获取视频的方法
Feb 28 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
python返回数组的索引实例
Nov 28 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
Mar 30 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
python中翻译功能translate模块实现方法
Dec 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的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
异步加载script的代码
2011/01/12 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
Python如何使用input函数获取输入
2020/08/06 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
总经理驾驶员岗位职责
2013/12/04 职场文书
促销活动方案模板
2014/02/24 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
公开承诺书格式
2014/05/21 职场文书
公民授权委托书
2014/10/15 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python