python 的logging 模块添加 文件handler,输出到文件的代码
时间: 2023-04-04 17:02:39 浏览: 95
可以使用以下代码将 logging 模块的日志输出到文件中:
import logging
# 创建 logger 对象
logger = logging.getLogger()
# 创建文件 handler 对象
file_handler = logging.FileHandler('log.txt')
# 设置日志级别
file_handler.setLevel(logging.DEBUG)
# 创建格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 将格式化器添加到文件 handler 中
file_handler.setFormatter(formatter)
# 将文件 handler 添加到 logger 对象中
logger.addHandler(file_handler)
# 输出日志
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
相关问题
python logging文件输出如何停止
如果你想停止 Python logging 模块输出到文件,可以通过以下两种方式之一来实现:
1. 关闭 logger:
```python
import logging
logging.getLogger().disabled = True
```
这会禁用默认的 logger,从而停止所有的 logging 输出。
2. 移除文件 handler:
```python
import logging
logger = logging.getLogger()
for handler in logger.handlers:
if isinstance(handler, logging.FileHandler):
logger.removeHandler(handler)
```
这会在 logger 中查找所有的 handler,如果是文件 handler 就将其移除,从而停止文件输出。
需要注意的是,这两种方式都会停止 logging 输出到文件,但是仍然会在控制台输出。如果想要同时停止控制台输出,可以将 `logging.getLogger().disabled` 设置为 True。
python logging模块知道输出目录
可以使用logging模块中的FileHandler来指定输出日志文件的目录。
示例代码:
```python
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 创建一个FileHandler,指定日志文件的目录和文件名
handler = logging.FileHandler('/path/to/logfile.log')
handler.setLevel(logging.DEBUG)
# 创建一个格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
# 添加FileHandler到logger
logger.addHandler(handler)
# 输出日志
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
```
在上面的代码中,我们创建了一个FileHandler,并指定了日志文件的目录和文件名。然后,我们将这个FileHandler添加到logger中,这样所有的日志消息都会被写入到这个文件中。