通过logging记录log,怎么存储在指定目录中
时间: 2024-01-22 12:17:27 浏览: 27
可以使用Python内置的logging模块来记录log,并通过设置handler来将log存储在指定目录中。
以下是一个示例代码:
```python
import logging
# 创建logger对象
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
# 创建文件handler并设置级别为DEBUG
log_path = '/path/to/log/file.log'
file_handler = logging.FileHandler(log_path)
file_handler.setLevel(logging.DEBUG)
# 创建控制台handler并设置级别为INFO
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
# 创建格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 添加handler到logger对象
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# 记录log
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
```
在上面的代码中,我们首先创建了一个logger对象,并设置了它的级别为DEBUG。然后创建了一个文件handler和一个控制台handler,并分别设置了它们的级别为DEBUG和INFO。接着创建了一个格式化器,并将它应用到文件handler和控制台handler中。最后将文件handler和控制台handler添加到logger对象中。
当我们记录log时,logger会根据设定的级别来判断是否需要将log输出到文件或控制台。在这个例子中,我们记录了5个不同级别的log,并通过handler将它们存储到文件中。
请注意,如果设置了文件handler,需要确保目录存在并且有写入权限。