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操作摄像头截图实现远程监控的例子
Mar 25 Python
Python数据类型详解(二)列表
May 08 Python
Python中装饰器学习总结
Feb 10 Python
python3解析库pyquery的深入讲解
Jun 26 Python
Python中的枚举类型示例介绍
Jan 09 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
python实现QQ批量登录功能
Jun 19 Python
Python中pymysql 模块的使用详解
Aug 12 Python
python GUI模拟实现计算器
Jun 22 Python
基于Python 函数和方法的区别说明
Mar 24 Python
Python实现老照片修复之上色小技巧
Oct 16 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 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
建立文件交换功能的脚本(二)
2006/10/09 PHP
PHP教程 基本语法
2009/10/23 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
python使用socket远程连接错误处理方法
2015/04/29 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
Python如何将函数值赋给变量
2020/04/28 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
2014年教师党员自我评议
2014/09/19 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
详解Nginx 工作原理
2021/03/31 Servers