打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python知识巩固 | 自定义日志模块封装,将日志格式化打印到控制台或是输出到文件?

相关依赖库

 1# -*- coding: UTF-8 -*-
2
3# 日志模块
4
5import logging
6
7# 时间模块
8
9import datetime
10
11# 系统操作模块
12
13import os
14
15# 日志处理模块
16
17from logging import handlers

初始化全局参数

 1class LogUtil(object):
2
3    def __init__(self, log_name):
4
5        '''初始化参数'''
6
7        # 日志名称
8
9        self.log_name = log_name
10
11        # 日志对象
12
13        self.logger = logging.getLogger(self.log_name)
14
15        # 日志级别
16
17        self.logger.setLevel(logging.DEBUG)
18
19        # 日志时间格式化
20
21        self.log_time = datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S")

控制台输出

 1def console_output(self):
2
3    # 日志输出
4
5    self.handlers = logging.StreamHandler()
6
7    self.handlers.setLevel(logging.DEBUG)
8
9    # 格式化日志输出格式
10
11    self.format = logging.Formatter('[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] - [%(message)s]',
12                                    "%Y-%m-%d %H:%M:%S")
13
14    self.handlers.setFormatter(self.format)
15
16    # 将日志添加到logger对象中
17
18    self.logger.addHandler(self.handlers)
19
20    return self.logger

文件内输出

 1def file_output(self, file_path="/usr/data/load/", file_name="log"):
2
3    # 将日志输出到文件
4
5    self.file_full_path = os.path.join(file_path, file_name + ".log")
6
7    self.handlers = handlers.TimedRotatingFileHandler(self.file_full_path, when='midnight',
8                                                      interval=1, backupCount=50)
9
10    # 格式化日志输出格式
11
12    self.format = logging.Formatter('[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] - [%(message)s]',
13                                    "%Y-%m-%d %H:%M:%S")
14
15    self.handlers.setFormatter(self.format)
16
17    # 将日志添加到logger对象中
18
19    self.logger.addHandler(self.handlers)
20
21    return self.logger

调用日志模块

 1if __name__ == '__main__':
2    '''
3    控制台日志输出调用
4    '''

5    # logger = LogUtil("测试控制台日志输出").console_output()
6
7    # logger.info("我是一个info")
8
9    # logger.debug("我是一个debug")
10
11    # logger.error("我是一个error")
12
13    '''
14    文件内日志输出调用
15    '''

16
17    logger = LogUtil("测试输出到文件").file_output(file_path="C:\\")
18
19    logger.info("test")


关注 Python集中营
领取编程干货
培养编程思想
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
将不同级别的logging 日志信息写入到不同文件
python按日志时间与按日志大小切分日志
python的logging模块【zz】
python logging模块:
常用的模块
Python日志模块
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服