在Ubuntu系统中,使用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'  # 设置日期格式
)
# 创建一个日志记录器实例
logger = logging.getLogger(__name__)
# 记录不同级别的日志
logger.debug('这是一条debug信息')
logger.info('这是一条info信息')
logger.warning('这是一条warning信息')
logger.error('这是一条error信息')
logger.critical('这是一条critical信息')
在这个例子中,我们首先导入了logging模块,然后使用basicConfig函数来配置日志记录器。basicConfig函数的参数包括:
level: 设置日志的最低级别,只有这个级别及以上的日志才会被记录。format: 设置日志的输出格式,包括时间、日志记录器名称、日志级别和日志消息。datefmt: 设置时间的格式。然后,我们创建了一个logger实例,并使用它来记录不同级别的日志信息。
如果你想要将日志输出到文件,可以在basicConfig函数中添加filename参数:
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'表示追加模式
)
如果你想要在控制台和文件中同时输出日志,可以使用StreamHandler:
import logging
# 创建一个日志记录器实例
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 创建一个handler,用于写入日志到文件
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.DEBUG)
# 创建另一个handler,用于输出日志到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
# 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 给logger添加handler
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# 记录日志
logger.debug('这是一条debug信息')
logger.info('这是一条info信息')
logger.warning('这是一条warning信息')
logger.error('这是一条error信息')
logger.critical('这是一条critical信息')
在这个例子中,我们创建了两个handler:一个用于写入日志到文件app.log,另一个用于输出日志到控制台。我们还为这两个handler设置了不同的日志级别和格式。
请注意,当你在生产环境中使用日志时,应该考虑日志的安全性和性能影响。例如,避免在日志中记录敏感信息,并确保日志文件的写入不会成为性能瓶颈。