Logging库是python的一个自带库,也就是不需要安装就能直接使用的库,因此可以直接在程序的开头直接导入logging库即可使用无需安装。
假如你需要在项目运行的时候将各个模块的日志记录到不同的文件中:
1、Logging模块的基础配置
创建一个logger.py文件,添加如下代码:
import logging
from logging.handlers import TimedRotatingFileHandler
import os
def setup_logger(log_name):
"""
配置日志记录器的函数。
创建一个名为 log_name 的日志记录器,设置日志级别为 INFO,
并为其添加一个基于时间的文件处理器,每天生成一个新的日志文件。
"""
# 获取名为 log_name 的日志记录器,如果不存在则创建
logger = logging.getLogger(log_name)
# 设置日志级别为 INFO,表示记录 INFO 及以上级别的日志
logger.setLevel(logging.INFO)
# 获取当前工作目录
working_dir = os.getcwd()
# 创建 'log' 文件夹的路径
log_path = os.path.join(working_dir, 'log')
# 确保 'log' 文件夹存在
if not os.path.exists(log_path):
os.makedirs(log_path)
file_path = os.path.join(log_path, f'{log_name}.log')
# 创建一个基于时间的文件处理器
# 指定日志文件的路径为 log/log_name+'.log',时间间隔为一天('midnight' 表示每天的午夜),保留 0 个备份文件,编码为 'utf-8'
file_handler = TimedRotatingFileHandler(file_path, when='midnight', interval=1, backupCount=0, encoding='utf-8')
# 创建一个日志格式器,定义日志的格式
# 格式包括时间戳、日志记录器名称、日志级别和日志消息
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 为文件处理器设置格式器
file_handler.setFormatter(formatter)
# 将文件处理器添加到日志记录器
logger.addHandler(file_handler)
# 返回配置好的日志记录器
return logger
Vision_log=setup_logger('Vision')
Motor_log=setup_logger('Motor')
if __name__ == '__main__':
# 使用日志记录器记录信息
Vision_log.info("Vision thread is starting")
Motor_log.info("Motor thread is finishing")
2、记录日志
导入不同的logger,分别记录信息即可:
from logger import Vision_log
from logger import Motor_log
Vision_log.info("Vision thread")
Motor_log.info("Vision thread")
3、实现效果:
可以看到在当前目录下,生成了一个log文件夹,且文件夹下生成两个.log文件。