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脚本替换指定行实现步骤
Jul 11 Python
python文件名和文件路径操作实例
Sep 29 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
python读取文件名并改名字的实例
Jan 07 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
Keras loss函数剖析
Jul 06 Python
python调用百度API实现人脸识别
Nov 17 Python
基于Django集成CAS实现流程详解
Nov 28 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 Python
一文搞懂Python Sklearn库使用
Aug 23 Python
python基础之类属性和实例属性
Oct 24 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
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
复制粘贴功能的Python程序
2008/04/04 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
Django 重写用户模型的实现
2019/07/29 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
C# .NET面试题
2015/11/28 面试题
关爱留守儿童倡议书
2014/04/15 职场文书
家长对学生的评语
2014/04/18 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
检讨书大全
2015/01/27 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
小学运动会入场词
2015/07/18 职场文书
中秋节感想
2015/08/10 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
导游词之安徽九华山
2019/09/18 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
吃通javascript正则表达式
2021/04/21 Javascript