要通过方法设置 loguru
日志配置,我们可以创建一个配置函数,并将所有配置逻辑集中在该函数中。在这种情况下,配置函数不仅仅执行配置逻辑,还可以通过传递参数来动态设置路径或其他配置选项。以下是如何通过一个方法来设置 loguru
日志的示例:
import os
import sys
from loguru import logger
def configure_logging(app_name, log_directory='/chj/data/log', log_file_name='app.log',
rotation_size='100 MB', retention_period='1 days', stderr_level="DEBUG", file_level="INFO"):
"""
配置日志系统。
:param app_name: 应用名称,用于生成日志路径。
:param log_directory: 日志根目录。
:param log_file_name: 日志文件名。
:param rotation_size: 日志文件轮转的大小。
:param retention_period: 日志文件的保留周期。
:param stderr_level: 标准错误流日志级别。
:param file_level: 日志文件级别。
"""
# 移除任何现有的日志配置
logger.remove()
# 创建日志路径
log_path = os.path.join(log_directory, app_name, "logs", log_file_name)
# 确保日志目录存在
os.makedirs(os.path.dirname(log_path), exist_ok=True)
# 添加文件日志处理器
logger.add(log_path, rotation=rotation_size, retention=retention_period, level=file_level, format="{time} - {level} - {message}")
# 添加标准错误流日志处理器
logger.add(sys.stderr, level=stderr_level)
# 调用配置方法设置日志
configure_logging(app_name="my_app")
# 测试日志输出
logger.info("应用已启动。")
logger.debug("这是一个调试信息。")
示例解析:
-
函数参数化:
app_name
用于生成带有应用名称的特定日志路径。log_directory
和log_file_name
允许调用者定义日志所在的目录和日志文件的名称。rotation_size
、retention_period
、stderr_level
和file_level
使得日志轮转、保留、级别等设置可以灵活调整。
-
使用
os.makedirs()
创建目录:
确保日志文件所在的目录存在,以便于正确写入日志文件。 -
日志输出配置:
- 使用
logger.add()
两次,分别配置日志文件和标准错误流的输出,保证文件和控制台都可以监控日志。
- 使用
这种方法提供了灵活性,你可以根据需要调用 configure_logging()
函数时传入不同的参数值。这使得日志配置可以适应不同的运行环境或应用需求。