使用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}')

```


评论

此博客中的热门博文

使用自己的github加速源

量化指标计算

申请证书

搭建属于自己的vpn节点—科学上网

wsl安装cuda

解决v2rayN的延迟是-1的问题

wsl虚拟机释放文件

wsl安装cuda10.2

WSL怎么使用本机进行快速克隆github代码