相关依赖库
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")