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学习笔记之常用函数及说明
May 23 Python
Python实现获取某天是某个月中的第几周
Feb 11 Python
python实现自动登录人人网并采集信息的方法
Jun 28 Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 Python
老生常谈python中的重载
Nov 11 Python
Python中print和return的作用及区别解析
May 05 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
用Python画小女孩放风筝的示例
Nov 23 Python
Python中if有多个条件处理方法
Feb 26 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python 获取剪切板内容的两种方法
Nov 28 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
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
php生出随机字符串
2017/07/06 PHP
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
python time模块用法实例详解
2014/09/11 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
详解python之配置日志的几种方式
2017/05/22 Python
python实现八大排序算法(1)
2017/09/14 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
C语言笔试集
2012/07/24 面试题
中文系师范生自荐信
2013/10/01 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
教师节座谈会主持词
2015/07/03 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers