使用logging日志记录
### 使用logging日志记录
`logging` 是 Python 内置的日志模块,用于记录应用程序的运行状态,帮助开发者调试和监控程序。以下是 `logging` 模块的基本使用方法:
#### 1. 导入模块
```python
import logging
```
### 2. 配置日志
可以通过 `logging.basicConfig()` 函数配置日志系统的基本设置,例如日志的级别、格式、输出位置等:
```python
logging.basicConfig(
level=logging.DEBUG, # 设置日志级别
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # 设置日志格式
datefmt='%Y-%m-%d %H:%M:%S', # 设置时间格式
filename='app.log', # 日志输出到文件
filemode='w' # 写入模式,'w' 表示覆盖写入,'a' 表示追加写入
)
```
### 3. 创建日志器
在程序中使用 `logging.getLogger()` 创建一个日志器(logger):
```python
logger = logging.getLogger(__name__)
```
`logging` 是 Python 内置的日志模块,用于记录应用程序的运行状态,帮助开发者调试和监控程序。以下是 `logging` 模块的基本使用方法:
### 1. 导入模块
首先需要导入 `logging` 模块:
```
python
Copy code
import logging
```
### 2. 配置日志
可以通过 `logging.basicConfig()` 函数配置日志系统的基本设置,例如日志的级别、格式、输出位置等:
```
pythonCopy codelogging.basicConfig(
level=logging.DEBUG, # 设置日志级别
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # 设置日志格式
datefmt='%Y-%m-%d %H:%M:%S', # 设置时间格式
filename='app.log', # 日志输出到文件
filemode='w' # 写入模式,'w' 表示覆盖写入,'a' 表示追加写入
)
```
### 3. 创建日志器
在程序中使用 `logging.getLogger()` 创建一个日志器(logger):
```
python
Copy code
logger = logging.getLogger(__name__)
```
### 4. 记录日志
使用日志器的各种方法记录不同级别的日志信息:
```python
logger.debug('这是一个调试信息')
logger.info('这是一个信息')
logger.warning('这是一个警告')
logger.error('这是一个错误')
logger.critical('这是一个严重错误')
```
### 5. 日志级别
`logging` 模块定义了以下几个日志级别,从低到高分别是:
- `DEBUG`: 调试信息,细粒度信息事件,对调试应用程序非常有帮助。
- `INFO`: 普通信息,确认程序按预期工作。
- `WARNING`: 警告信息,表明会出现潜在错误的情形。
- `ERROR`: 错误信息,由于更严重的问题,程序已不能执行某些功能。
- `CRITICAL`: 严重错误,表明程序本身可能无法继续运行。
下面是一个示例:
```python
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filemode='w',
filename='app.log'
)
logger = logging.getLogger(__name__)
if __name__ == '__main__':
model = build_net()
logger.info(model)
inp_shape = (3, 256, 256)
from ptflops import get_model_complexity_info
macs, params = get_model_complexity_info(model, inp_shape, verbose=False, print_per_layer_stat=False)
params = float(params[:-3])
macs = float(macs[:-4])
print(macs, params)
logger.info(f'macs和params分别是: macs={macs}, params={params}')
```
评论
发表评论