Python中使用getLogger()方法记录日志的实例教程
在Python中,我们可以使用logging模块来记录日志。logging模块提供了一个Logger类,可以创建Logger对象来记录日志。
Logger对象可以使用getLogger()方法来创建,该方法接受一个可选的参数,即日志名称。如果不指定日志名称,则默认使用root。
以下是使用getLogger()方法记录日志的实例教程:
1. 导入logging模块
import logging
2. 创建一个Logger对象
logger = logging.getLogger('example')
可以指定一个日志名称作为参数,如果不指定,默认使用root。
Logger对象会根据名称来判断是否已经创建了对应的Logger实例,如果已经创建,则返回已有的实例,否则创建一个新的Logger实例。
3. 设置Logger对象的日志级别
Logger对象的日志级别决定了哪些信息可以输出。
可以使用Logger对象的setLevel()方法来设置日志级别。
logger.setLevel(logging.DEBUG)
常用的日志级别有以下几个:
- DEBUG:详细的调试信息
- INFO:一般的信息
- WARNING:警告信息
- ERROR:错误信息
- CRITICAL:严重错误信息
可以根据需要设置不同的日志级别。
4. 创建一个日志处理器
日志处理器决定了日志信息的输出方式,可以将日志输出到控制台、文件、网络等不同地方。
可以使用logging模块中提供的各种Handler类来创建日志处理器。
console_handler = logging.StreamHandler()
创建一个StreamHandler对象,用于将日志输出到控制台。
5. 设置日志处理器的日志级别
同样,日志处理器也有日志级别,可以使用setLevel()方法来设置。
console_handler.setLevel(logging.DEBUG)
6. 创建日志格式化器
日志格式化器决定了日志输出的格式。
可以使用logging模块中提供的Formatter类来创建日志格式化器。
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
创建一个Formatter对象,其中包含了时间、日志名称、日志级别和日志信息。
7. 将日志处理器添加到Logger对象中
logger.addHandler(console_handler)
使用addHandler()方法将日志处理器添加到Logger对象中。
8. 将日志格式化器添加到日志处理器中
console_handler.setFormatter(formatter)
使用setFormatter()方法将日志格式化器添加到日志处理器中。
9. 记录日志
可以使用Logger对象的各种方法来记录日志,如debug()、info()、warning()、error()、critical()等。
logger.debug('This is a debug message')
logger.info('This is an info message')
以上是一个使用getLogger()方法记录日志的基本教程。
以下是一个完整的实例,将日志同时输出到控制台和文件:
import logging
logger = logging.getLogger('example')
logger.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
file_handler = logging.FileHandler('example.log')
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.debug('This is a debug message')
logger.info('This is an info message')
在上述示例中,创建了一个名为example的Logger对象,将日志级别设置为DEBUG。
创建了一个StreamHandler对象,将日志级别设置为DEBUG,然后设置了一个Formatter对象。
创建了一个FileHandler对象,将日志输出到example.log文件中,同时设置了日志级别和格式化器。
最后,使用addHandler()方法将两个处理器添加到Logger对象中,然后使用debug()和info()方法记录了两条日志信息。
