mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-31 06:56:39 +00:00 
			
		
		
		
	🔊 change log level add level config
This commit is contained in:
		| @@ -179,15 +179,17 @@ def init(*, _env_file: Optional[str] = None, **kwargs): | ||||
|     """ | ||||
|     global _driver | ||||
|     if not _driver: | ||||
|         logger.info("NoneBot is initializing...") | ||||
|         logger.success("NoneBot is initializing...") | ||||
|         env = Env() | ||||
|         logger.opt( | ||||
|             colors=True).info(f"Current <y><b>Env: {env.environment}</b></y>") | ||||
|         config = Config(**kwargs, | ||||
|                         _common_config=env.dict(), | ||||
|                         _env_file=_env_file or f".env.{env.environment}") | ||||
|  | ||||
|         default_filter.level = "DEBUG" if config.debug else "INFO" | ||||
|         default_filter.level = ( | ||||
|             "DEBUG" if config.debug else | ||||
|             "INFO") if config.log_level is None else config.log_level | ||||
|         logger.opt( | ||||
|             colors=True).info(f"Current <y><b>Env: {env.environment}</b></y>") | ||||
|         logger.opt(colors=True).debug( | ||||
|             f"Loaded <y><b>Config</b></y>: {escape_tag(str(config.dict()))}") | ||||
|  | ||||
| @@ -223,7 +225,7 @@ def run(host: Optional[str] = None, | ||||
|         nonebot.run(host="127.0.0.1", port=8080) | ||||
|  | ||||
|     """ | ||||
|     logger.info("Running NoneBot...") | ||||
|     logger.success("Running NoneBot...") | ||||
|     get_driver().run(host, port, *args, **kwargs) | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -15,10 +15,9 @@ NoneBot 使用 `pydantic`_ 以及 `python-dotenv`_ 来读取配置。 | ||||
| """ | ||||
| import os | ||||
| from pathlib import Path | ||||
|  | ||||
| from datetime import timedelta | ||||
| from ipaddress import IPv4Address | ||||
| from typing import Any, Set, Dict, Tuple, Mapping, Optional | ||||
| from typing import Any, Set, Dict, Union, Tuple, Mapping, Optional | ||||
|  | ||||
| from pydantic import BaseSettings, IPvAnyAddress | ||||
| from pydantic.env_settings import SettingsError, InitSettingsSource, EnvSettingsSource | ||||
| @@ -173,6 +172,25 @@ class Config(BaseConfig): | ||||
|  | ||||
|       是否以调试模式运行 NoneBot。 | ||||
|     """ | ||||
|     log_level: Optional[Union[int, str]] = None | ||||
|     """ | ||||
|     - **类型**: ``Union[int, str]`` | ||||
|     - **默认值**: ``None`` | ||||
|  | ||||
|     :说明: | ||||
|  | ||||
|       配置 NoneBot 日志输出等级,可以为 ``int`` 类型等级或等级名称,参考 `loguru 日志等级`_。 | ||||
|  | ||||
|     :示例: | ||||
|  | ||||
|     .. code-block:: default | ||||
|  | ||||
|         LOG_LEVEL=25 | ||||
|         LOG_LEVEL=INFO | ||||
|  | ||||
|     .. _loguru 日志等级: | ||||
|         https://loguru.readthedocs.io/en/stable/api/logger.html#levels | ||||
|     """ | ||||
|  | ||||
|     # bot connection configs | ||||
|     api_root: Dict[str, str] = {} | ||||
|   | ||||
| @@ -12,6 +12,7 @@ NoneBot 使用 `loguru`_ 来记录日志信息。 | ||||
|  | ||||
| import sys | ||||
| import logging | ||||
| from typing import Union | ||||
|  | ||||
| from loguru import logger as logger_ | ||||
|  | ||||
| @@ -44,11 +45,12 @@ logger = logger_ | ||||
| class Filter: | ||||
|  | ||||
|     def __init__(self) -> None: | ||||
|         self.level = "DEBUG" | ||||
|         self.level: Union[int, str] = "DEBUG" | ||||
|  | ||||
|     def __call__(self, record): | ||||
|         record["name"] = record["name"].split(".")[0] | ||||
|         levelno = logger.level(self.level).no | ||||
|         levelno = logger.level(self.level).no if isinstance(self.level, | ||||
|                                                             str) else self.level | ||||
|         return record["level"].no >= levelno | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -199,7 +199,7 @@ async def handle_event(bot: "Bot", event: "Event") -> Optional[Exception]: | ||||
|     except NoLogException: | ||||
|         show_log = False | ||||
|     if show_log: | ||||
|         logger.opt(colors=True).info(log_msg) | ||||
|         logger.opt(colors=True).success(log_msg) | ||||
|  | ||||
|     state = {} | ||||
|     coros = list(map(lambda x: x(bot, event, state), _event_preprocessors)) | ||||
|   | ||||
| @@ -946,7 +946,7 @@ def _load_plugin(manager: PluginManager, plugin_name: str) -> Optional[Plugin]: | ||||
|         plugin = Plugin(plugin_name, module) | ||||
|         plugins[plugin_name] = plugin | ||||
|         logger.opt( | ||||
|             colors=True).info(f'Succeeded to import "<y>{plugin_name}</y>"') | ||||
|             colors=True).success(f'Succeeded to import "<y>{plugin_name}</y>"') | ||||
|         return plugin | ||||
|     except Exception as e: | ||||
|         logger.opt(colors=True, exception=e).error( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user