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开发之函数定义实例分析
Nov 12 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
python绘制立方体的方法
Jul 02 Python
pandas取出重复数据的方法
Jul 04 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
python interpolate插值实例
Jul 06 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 Python
PyQT5速成教程之Qt Designer介绍与入门
Nov 02 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 Python
详解python的xlwings库读写excel操作总结
Feb 26 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实现图片裁剪、添加水印效果代码
2014/10/01 PHP
ThinkPHP安装和设置
2015/07/27 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
express 项目分层实践详解
2018/12/10 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
js 数据类型判断的方法
2020/12/03 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python的sys.path模块路径添加方式
2020/03/09 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
九年级体育教学反思
2014/01/23 职场文书
初三学习决心书
2014/03/11 职场文书
党委领导班子整改方案
2014/09/30 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript