请问将python中在控制台中显示的内容保存到某个日志文件中?
时间: 2023-07-31 14:12:37 浏览: 111
可以使用Python标准库中的logging模块来实现这个功能。具体步骤如下:
1. 导入logging模块和os模块(可选):
```python
import logging
import os
```
2. 创建一个logger对象:
```python
logger = logging.getLogger(__name__)
```
其中,`__name__`参数可以使用当前脚本的文件名。
3. 配置logger对象:
```python
logger.setLevel(logging.DEBUG)
```
设置logger的级别,这里设置为DEBUG级别,表示会输出所有级别的日志信息。
4. 创建一个FileHandler对象:
```python
log_file = os.path.join(os.getcwd(), 'app.log')
file_handler = logging.FileHandler(log_file)
```
其中,`log_file`为日志文件的路径,这里使用`os.getcwd()`获取当前工作目录,再拼接上文件名`app.log`。
5. 配置FileHandler对象:
```python
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
```
设置FileHandler的级别为DEBUG级别,设置日志格式,这里使用`%(asctime)s - %(levelname)s - %(message)s`,表示输出时间、级别和消息。
6. 将FileHandler添加到logger对象中:
```python
logger.addHandler(file_handler)
```
7. 使用logger对象输出日志信息:
```python
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
```
运行程序后,可以在日志文件中看到输出的信息。
完整代码示例:
```python
import logging
import os
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
log_file = os.path.join(os.getcwd(), 'app.log')
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
```
注意:在实际应用中,可能需要根据不同的情况输出不同级别的日志信息,可以根据需求调整日志级别。
阅读全文