logger.setLevel
时间: 2023-10-17 16:05:31 浏览: 65
logger.setLevel() 是 Python logging 模块中的一个方法,用于设置日志记录器的日志级别。可以通过设置不同的日志级别来控制哪些日志消息将被记录。常见的日志级别包括 DEBUG、INFO、WARNING、ERROR 和 CRITICAL。例如,设置日志记录器 logger 的日志级别为 DEBUG:
```python
import logging
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
```
这意味着 logger 会记录所有级别为 DEBUG 及以上的日志消息。如果将日志级别设置为 WARNING,则只会记录级别为 WARNING、ERROR 和 CRITICAL 的日志消息。
相关问题
logger.setLevel(level)
logger.setLevel(level) 是用于设置记录器的日志级别的方法。它接受一个参数 level,表示要设置的日志级别。logger.setLevel() 方法将会设置记录器及其所有子记录器的日志级别。当有一个日志消息传递给记录器时,记录器会检查消息的级别是否高于或等于记录器的级别。如果是,则该消息将被记录下来,否则将被忽略。常见的日志级别包括 DEBUG、INFO、WARNING、ERROR、CRITICAL,级别越高表示日志消息的重要性越大。
优化代码: import logging class DAELogControl(): def __init__(self, path): self.path = path self.logger = logging.getLogger(__name__) self.consoleFormatter = logging.Formatter("[%(asctime)s] %(levelname)s (%(filename)s:%(lineno)d): %(message)30s...") # self.consoleFormatter = logging.Formatter("%(levelname)s [%(asctime)s] (%(filename)s:%(lineno)d): %(message)30s...") self.fileFormatter = logging.Formatter("[%(asctime)s] %(levelname)s (%(filename)s:%(lineno)d): %(message)s") # self.fileFormatter = logging.Formatter("%(levelname)s [%(asctime)s] (%(filename)s:%(lineno)d): %(message)s") self.logger.propagate = False self.logger.setLevel(logging.DEBUG) self.consoleHandler = logging.StreamHandler() self.consoleHandler.setFormatter(self.consoleFormatter) self.consoleHandler.setLevel(logging.INFO) self.logger.addHandler(self.consoleHandler) self.fileHandler = logging.FileHandler(self.path) self.fileHandler.setFormatter(self.fileFormatter) self.fileHandler.setLevel(logging.DEBUG) self.logger.addHandler(self.fileHandler) def dae_data_err(self, msg): self.logger.debug(msg, stacklevel=2) def dae_info(self, msg): self.logger.info(msg, stacklevel=2) def dae_error(self, msg): self.logger.error(msg, stacklevel=2)
可以通过以下几个方面来优化代码:
1. 代码格式化:对代码进行格式化,使其更具可读性,例如在类定义的左括号前添加空格,代码缩进等。
2. 使用默认参数:将默认参数添加到函数参数中,以避免重复代码。例如,将默认的日志格式添加到日志处理程序中。
3. 删除重复代码:删除重复代码,例如在日志处理程序中使用了相同的格式化器。
4. 使用更具描述性的命名:使用更具描述性的变量和函数名称可以使代码更易于理解和维护。
下面是优化后的代码:
```python
import logging
class DAELogControl:
def __init__(self, path):
self.path = path
self.logger = logging.getLogger(__name__)
self.logger.propagate = False
self.logger.setLevel(logging.DEBUG)
self.consoleHandler = logging.StreamHandler()
self.consoleHandler.setLevel(logging.INFO)
self.consoleHandler.setFormatter(logging.Formatter("[%(asctime)s] %(levelname)s (%(filename)s:%(lineno)d): %(message)30s..."))
self.logger.addHandler(self.consoleHandler)
self.fileHandler = logging.FileHandler(self.path)
self.fileHandler.setLevel(logging.DEBUG)
self.fileHandler.setFormatter(logging.Formatter("[%(asctime)s] %(levelname)s (%(filename)s:%(lineno)d): %(message)s"))
self.logger.addHandler(self.fileHandler)
def dae_data_err(self, msg):
self.logger.debug(msg, stacklevel=2)
def dae_info(self, msg):
self.logger.info(msg, stacklevel=2)
def dae_error(self, msg):
self.logger.error(msg, stacklevel=2)
```
通过这些优化,代码变得更加简洁和易于理解。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)