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下载Bing图片(代码)
Nov 07 Python
python正常时间和unix时间戳相互转换的方法
Apr 23 Python
详解Python中for循环的使用方法
May 14 Python
python中函数传参详解
Jul 03 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
python清理子进程机制剖析
Nov 23 Python
Python下载网络小说实例代码
Feb 03 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
对Python中plt的画图函数详解
Nov 07 Python
python 使用 requests 模块发送http请求 的方法
Dec 09 Python
在python中利用KNN实现对iris进行分类的方法
Dec 11 Python
python获取系统内存占用信息的实例方法
Jul 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
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
javascript运行机制之this详细介绍
2014/02/07 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
python爬虫的工作原理
2017/03/05 Python
Python yield与实现方法代码分析
2018/02/06 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
python中使用print输出中文的方法
2018/07/16 Python
python解析yaml文件过程详解
2019/08/30 Python
python相对企业语言优势在哪
2020/06/12 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
Java基础知识面试题
2014/03/25 面试题
教师队伍管理制度
2014/01/14 职场文书
项目总经理岗位职责
2014/02/14 职场文书
党支部公开承诺书
2014/03/28 职场文书
道德之星事迹材料
2014/05/03 职场文书
新闻学专业求职信
2014/07/28 职场文书
群众路线专项整治方案
2014/10/27 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
护理工作心得体会
2016/01/22 职场文书
mysql 获取时间方式
2022/03/20 MySQL