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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
Python的Django框架中的表单处理示例
Jul 17 Python
详解Django中的form库的使用
Jul 18 Python
Python自动扫雷实现方法
Jul 25 Python
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
python绘制简单折线图代码示例
Dec 19 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
python字典的setdefault的巧妙用法
Aug 07 Python
使用Python下载抖音各大V视频的思路详解
Feb 06 Python
Python中else的三种使用场景
Jun 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
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
几行js代码实现自适应
2017/02/24 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
vue的for循环使用方法
2019/02/12 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
python获取一组汉字拼音首字母的方法
2015/07/01 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Python卸载模块的方法汇总
2016/06/07 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
商场经理竞聘演讲稿
2014/01/01 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
质量负责人任命书
2014/06/06 职场文书
2015年校长新年寄语
2014/12/08 职场文书
社区工作者个人总结
2015/02/28 职场文书
简历中自我评价范文
2015/03/11 职场文书
安全教育第一课观后感
2015/06/17 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS