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 BeautifulSoup库抓取58手机维修信息
Nov 21 Python
python字符串替换示例
Apr 24 Python
Python中线程编程之threading模块的使用详解
Jun 23 Python
python读取oracle函数返回值
Jul 18 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
详解python中@的用法
Mar 27 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
Python测试框架:pytest学习笔记
Oct 20 Python
python 实时调取摄像头的示例代码
Nov 25 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
在python中实现导入一个需要传参的模块
May 12 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读取MySQL数据代码
2008/06/05 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
在Python的Flask框架下收发电子邮件的教程
2015/04/21 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
培训主管岗位职责
2014/02/01 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
员工试用期自我评价
2014/09/18 职场文书
会计工作岗位职责
2015/02/03 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
Python django中如何使用restful框架
2021/06/23 Python
Mysql开启外网访问
2022/05/15 MySQL