Python 日志函数
编写一个日志输出的函数需要考虑以下几点:
1. 日志的级别(例如:DEBUG、INFO、WARNING、ERROR、CRITICAL)
2. 日志的输出格式
3. 日志的存储方式(控制台输出、文件输出等)
可以使用Python内置的`logging`模块来实现这个功能。下面是一个示例,演示如何编写和配置一个日志输出的函数:
import logging
import os
def setup_logger(log_file=None, log_level=logging.INFO):
"""
设置日志配置
参数:
log_file (str): 日志文件路径,如果为None,则只输出到控制台
log_level (int): 日志级别,默认为INFO
"""
# 创建日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(log_level)
# 创建日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 创建控制台处理器并设置级别和格式
console_handler = logging.StreamHandler()
console_handler.setLevel(log_level)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# 如果提供了日志文件路径,创建文件处理器并设置级别和格式
if log_file:
# 创建日志目录(如果不存在)
os.makedirs(os.path.dirname(log_file), exist_ok=True)
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(log_level)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
# 使用示例
if __name__ == "__main__":
# 配置日志,输出到控制台和文件
logger = setup_logger(log_file='logs/app.log', log_level=logging.DEBUG)
# 输出不同级别的日志
logger.debug("这是调试信息")
logger.info("这是一般信息")
logger.warning("这是警告信息")
logger.error("这是错误信息")
logger.critical("这是严重错误信息")
代码说明
1. 导入必要的模块:导入`logging`和`os`模块。
2. 定义`setup_logger`函数:
- 参数`log_file`指定日志文件路径。如果为`None`,则只输出到控制台。
- 参数`log_level`指定日志级别,默认为`logging.INFO`。
- 创建日志记录器,并设置日志级别。
- 创建日志格式。
- 创建控制台处理器,设置日志级别和格式,并添加到日志记录器。
- 如果提供了日志文件路径,创建文件处理器,设置日志级别和格式,并添加到日志记录器。
3. 使用示例:配置日志输出到控制台和文件,并输出不同级别的日志信息。
这样,你就可以根据需要将日志输出到控制台或者文件中,并且可以灵活设置日志级别和格式。
Python 日志函数
https://lu0625.top//archives/1719220464618