在Python中使用日志功能,你可以利用内置的`logging`模块。以下是如何使用`logging`模块的基本步骤:
导入模块
import logging
配置日志
使用`basicConfig`方法配置日志记录器的基本设置,如日志级别、日志格式和处理器。
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S')
定义日志级别
设置日志记录的级别,如DEBUG、INFO、WARNING、ERROR、CRITICAL。
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')
记录日志
使用`logger`对象记录日志信息。
logger = logging.getLogger(__name__)
logger.debug('Debug message')
logger.info('Info message')
logger.warning('Warning message')
logger.error('Error message')
logger.critical('Critical message')
自定义日志格式
你可以自定义日志格式,包括时间、日志级别、文件名和行号等信息。
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(lineno)s - %(message)s')
fh = logging.FileHandler('app.log')
fh.setFormatter(formatter)
logger.addHandler(fh)
将日志输出到控制台
ch = logging.StreamHandler()
ch.setFormatter(formatter)
logger.addHandler(ch)
处理异常
在异常处理中使用`exception`方法记录异常信息。
try:
1/0
except Exception as e:
logger.exception('An error occurred: %s', e)
创建自定义日志记录器
如果需要更复杂的配置,可以使用`logging.config`加载日志配置信息。
log_dict = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'default': {
'format': '%(asctime)s - %(name)s - %(levelname)s - %(pathname)s - %(lineno)s - %(message)s'
}
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'default',
'level': 'DEBUG'
},
'file': {
'class': 'logging.FileHandler',
'formatter': 'default',
'level': 'DEBUG',
'filename': 'app.log'
}
},
'loggers': {
'': { root logger
'handlers': ['console', 'file'],
'level': 'DEBUG',
'propagate': False
}
}
}
logging.config(log_dict)
以上步骤展示了如何在Python中使用`logging`模块进行日志记录。你可以根据项目的需求调整日志级别、格式和处理方式