init config in loggers

This commit is contained in:
shenjack 2023-12-13 11:52:37 +08:00
parent 91d70dd332
commit e1b20e71a9
Signed by: shenjack
GPG Key ID: 7B1134A979775551
3 changed files with 39 additions and 1 deletions

View File

@ -8,6 +8,9 @@
- 现在如果输入的文件名包含 `{time}`
- 会自动替换为 `time.strftime("%Y-%m-%d_%H-%M-%S")`
- 修复了一些之前没有发现的问题
- `config`
- 添加了 `get_logger_from_old`
- 用于从现有 logger 中获取一个新的 logger
## Nuitka Compiler Helper

View File

@ -99,13 +99,13 @@ class LogLevel(Options):
# fmt: off
from lib_not_dr.loggers.config import get_logger, get_config, read_config # noqa: E402
from lib_not_dr.loggers import config # noqa: E402
if TYPE_CHECKING:
from lib_not_dr.loggers import logger
from lib_not_dr.loggers import formatter
from lib_not_dr.loggers import outstream
from lib_not_dr.loggers import structure
from lib_not_dr.loggers import config
__all__ = [
# modules

View File

@ -324,11 +324,13 @@ _storage = ConfigStorage(loggers={'root': Logger(logger_name='root')})
def get_config() -> ConfigStorage:
global _storage
return _storage
def get_logger(name: str = 'root', storage: Optional[ConfigStorage] = None) -> Logger:
if storage is None:
global _storage
storage = _storage
if name not in storage.loggers:
@ -338,9 +340,42 @@ def get_logger(name: str = 'root', storage: Optional[ConfigStorage] = None) -> L
return storage.loggers[name]
def get_logger_from_old(name: str, old_name: str = 'root', storage: Optional[ConfigStorage] = None) -> Logger:
if storage is None:
global _storage
storage = _storage
if name not in storage.loggers:
root_log = get_logger(old_name, storage).clone_logger()
root_log.logger_name = name
storage.loggers[name] = root_log
return storage.loggers[name]
def add_logger(name: str, logger: Logger, storage: Optional[ConfigStorage] = None) -> None:
if storage is None:
global _storage
storage = _storage
storage.loggers[name] = logger
def read_config(log_config: Dict, storage: Optional[ConfigStorage] = None) -> ConfigStorage:
if storage is None:
global _storage
storage = _storage
storage.read_dict_config(log_config)
return storage
# fmt: off
__all__ = [
"get_config",
"get_logger",
"_storage",
"read_config",
"ConfigStorage",
]
# 整的跟 export 一样
# fmt: on