在Ubuntu系统中使用Python进行日志处理,你可以使用Python的内置logging
模块。这个模块提供了灵活的日志系统,可以让你记录不同级别的信息,如调试信息、警告、错误等,并且可以配置日志的输出格式和目的地。
以下是一个简单的例子,展示了如何在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', # 时间格式
filename='app.log', # 日志文件名
filemode='a' # 文件模式,'a'表示追加,'w'表示覆盖
)
# 获取logger对象
logger = logging.getLogger(__name__)
# 记录不同级别的日志
logger.debug('这是一条调试信息')
logger.info('这是一条普通信息')
logger.warning('这是一条警告信息')
logger.error('这是一条错误信息')
logger.critical('这是一条严重信息')
# 如果不想将日志写入文件,也可以设置StreamHandler,将日志输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# 现在,日志也会输出到控制台
logger.info('这条信息会同时输出到文件和控制台')
在这个例子中,我们首先导入了logging
模块,然后使用basicConfig
方法配置了日志的基本设置,包括日志级别、格式、时间格式、文件名和文件模式。接着,我们获取了一个logger对象,并使用它记录了不同级别的日志信息。
如果你想要更高级的日志处理功能,比如日志轮转(当日志文件达到一定大小时自动创建新的日志文件),你可以使用RotatingFileHandler
或TimedRotatingFileHandler
。
以下是使用RotatingFileHandler
的一个例子:
import logging
from logging.handlers import RotatingFileHandler
# 创建logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 创建一个handler,用于写入日志文件
file_handler = RotatingFileHandler('app.log', maxBytes=10*1024*1024, backupCount=5)
file_handler.setLevel(logging.DEBUG)
# 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
# 给logger添加handler
logger.addHandler(file_handler)
# 写入日志
logger.info('这是一条信息')
在这个例子中,RotatingFileHandler
会在app.log
文件达到10MB时自动轮转日志文件,并保留最多5个旧的日志文件。
记得在生产环境中,你应该根据实际情况配置日志级别和日志处理方式,以确保日志的有效管理和监控。