在Linux系统中配置Python日志系统,通常会使用Python的内置logging模块。这个模块提供了灵活的日志记录机制,可以配置日志的级别、格式、处理器等。以下是一个基本的配置示例:
基本配置:
import logging
# 配置日志记录器
logging.basicConfig(
level=logging.DEBUG, # 设置日志级别
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # 设置日志格式
datefmt='%Y-%m-%d %H:%M:%S' # 设置时间格式
)
# 获取一个日志记录器实例
logger = logging.getLogger(__name__)
# 记录不同级别的日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
文件日志:
如果你想将日志记录到文件中,可以使用FileHandler:
import logging
# 创建一个日志记录器
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 创建一个文件处理器,并将日志写入文件
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.DEBUG)
# 创建一个格式化器,并将其添加到处理器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
# 将处理器添加到日志记录器
logger.addHandler(file_handler)
# 记录日志
logger.debug('This is a debug message')
logger.info('This is an info message')
控制台日志:
如果你想将日志同时输出到控制台,可以使用StreamHandler:
import logging
# 创建一个日志记录器
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 创建一个控制台处理器,并将日志输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# 创建一个格式化器,并将其添加到处理器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
# 将处理器添加到日志记录器
logger.addHandler(console_handler)
# 记录日志
logger.debug('This is a debug message')
logger.info('This is an info message')
日志轮转:
为了避免日志文件过大,可以使用RotatingFileHandler进行日志轮转:
import logging
from logging.handlers import RotatingFileHandler
# 创建一个日志记录器
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 创建一个文件处理器,并将日志写入文件
file_handler = RotatingFileHandler('app.log', maxBytes=10*1024*1024, backupCount=5)
file_handler.setLevel(logging.DEBUG)
# 创建一个格式化器,并将其添加到处理器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
# 将处理器添加到日志记录器
logger.addHandler(file_handler)
# 记录日志
for i in range(20):
logger.debug(f'This is debug message {i}')
通过这些配置,你可以灵活地控制Python应用程序的日志记录行为。根据实际需求,你可以进一步自定义日志格式、处理器和过滤器等。