python中log怎么用( 二 )


except Exception as e:
logger.exception('An error occurred: %s', e)
```
在上面的例子中,我们首先记录了不同级别的日志 。然后使用try...except语句模拟了一个错误,并使用exception函数记录了错误信息 。需要注意的是,exception函数会自动记录堆栈信息 。
4. 使用不同的日志记录器
在实际应用中,我们可能需要记录不同模块的日志 。这时候可以使用不同的日志记录器 。下面是一个例子:
```
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler('example.log')
fh.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)
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')
logger1 = logging.getLogger('module1')
logger1.setLevel(logging.DEBUG)
fh1 = logging.FileHandler('module1.log')
fh1.setLevel(logging.DEBUG)
formatter1 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh1.setFormatter(formatter1)
logger1.addHandler(fh1)
logger1.debug('This is a debug message in module1')
logger1.info('This is an info message in module1')
logger1.warning('This is a warning message in module1')
logger1.error('This is an error message in module1')
logger1.critical('This is a critical message in module1')
```
在上面的例子中,我们首先记录了不同级别的日志 。然后创建了一个名为module1的日志记录器,并设置了记录的级别为DEBUG 。接着创建了一个FileHandler对象,并将其添加到module1的日志记录器中 。最后记录了不同级别的日志 。
【python中log怎么用】需要注意的是,如果使用了多个日志记录器,需要为每个记录器创建一个FileHandler或StreamHandler对象,并将其添加到相应的记录器中 。

推荐阅读