From 57d77615a93865637f855cac4377b870bf9fffe9 Mon Sep 17 00:00:00 2001 From: Nanaloveyuki Date: Wed, 30 Jul 2025 16:28:55 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20=E4=BD=BF=E7=94=A8`env.py`?= =?UTF-8?q?=E7=94=A8=E6=9D=A5=E5=AD=98=E5=82=A8=E5=B8=B8=E9=87=8F=E5=92=8C?= =?UTF-8?q?=E5=8F=AF=E5=8F=98=E5=B8=B8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/logiliteal/utils/__init__.py | 20 ++++++++++--- src/logiliteal/utils/configs.py | 21 +------------- src/logiliteal/utils/env.py | 48 ++++++++++++++++++++++++++++++++ src/logiliteal/utils/formats.py | 24 +--------------- 4 files changed, 66 insertions(+), 47 deletions(-) diff --git a/src/logiliteal/utils/__init__.py b/src/logiliteal/utils/__init__.py index 4fbda22..190139a 100644 --- a/src/logiliteal/utils/__init__.py +++ b/src/logiliteal/utils/__init__.py @@ -6,9 +6,10 @@ Utility functions # python 3.13.5 from .configs import get_config, set_config, reset_config, create_backup -from .time import get_asctime, get_date, get_time, get_weekday -from .fmt import fmt_console, fmt_placeholder, fmt_message, fmt_level_name +from .time import get_asctime, get_date, get_time, get_weekday, _get_time +from .formats import fmt_console, fmt_content, fmt_file, fmt_level_list, fmt_level_name_to_number, fmt_level_number_to_name, fmt_placeholder, fmt_regex, add_placeholder, remove_placeholder, get_placeholder from .styles import set_color, set_bg_color, set_style +from .env import _placeholder, _level_name_map, DEFAULT_CONFIG __all__ = [ "get_config", @@ -19,11 +20,22 @@ __all__ = [ "get_date", "get_time", "get_weekday", + "_get_time", "fmt_console", + "fmt_content", + "fmt_file", + "fmt_level_list", + "fmt_level_name_to_number", + "fmt_level_number_to_name", "fmt_placeholder", - "fmt_message", - "fmt_level_name", + "fmt_regex", + "add_placeholder", + "remove_placeholder", + "get_placeholder", "set_color", "set_bg_color", "set_style", + "_placeholder", + "_level_name_map", + "DEFAULT_CONFIG", ] diff --git a/src/logiliteal/utils/configs.py b/src/logiliteal/utils/configs.py index 6bd3b5b..1edce89 100644 --- a/src/logiliteal/utils/configs.py +++ b/src/logiliteal/utils/configs.py @@ -46,26 +46,7 @@ def get_config_path(): return xdg_config_path DEFAULT_CONFIG_PATH = get_config_path() -DEFAULT_CONFIG = { - "file_level": "DEBUG", - "file_name": "latest.log", - "file_path": "./logs", - "file_format": "{asctime} {levelname} | {prefix}{message}{suffix}", - "file_encoding": "utf-8", - "enable_console": True, - "enable_file": True, - "console_color": True, - "console_level": "DEBUG", - "console_format": "{set_color(time, await get_config('time_color'))} {levelname} | {prefix}{message}{suffix}", - "console_encoding": "utf-8", - "asctime_format": "%Y-%m-%d %H:%M:%S", - "time_format": "%H:%M:%S", - "date_format": "%Y-%m-%d", - "weekday_format": "%A", - "level_nickname": {"DEBUG": "DEBUG", "INFO": "INFO", "WARN": "WARN", "ERRO": "ERRO", "CRIT": "CRIT"}, - "level_color": {"DEBUG": "#c1d5ff", "INFO": "#c1ffff", "WARN": "#fff600", "ERRO": "#ffa000", "CRIT": "#ff8181"}, - "time_color": "#28ffb6", -} + g_config_cache = None g_config_mtime = 0 diff --git a/src/logiliteal/utils/env.py b/src/logiliteal/utils/env.py index e69de29..c184a96 100644 --- a/src/logiliteal/utils/env.py +++ b/src/logiliteal/utils/env.py @@ -0,0 +1,48 @@ +""" +环境变量或常量与配置文件 +""" + +# 默认配置 +DEFAULT_CONFIG = { + "file_level": "DEBUG", + "file_name": "latest.log", + "file_path": "./logs", + "file_format": "{asctime} {levelname} | {prefix}{message}{suffix}", + "file_encoding": "utf-8", + "enable_console": True, + "enable_file": True, + "console_color": True, + "console_level": "DEBUG", + "console_format": "{set_color(time, await get_config('time_color'))} {levelname} | {prefix}{message}{suffix}", + "console_encoding": "utf-8", + "asctime_format": "%Y-%m-%d %H:%M:%S", + "time_format": "%H:%M:%S", + "date_format": "%Y-%m-%d", + "weekday_format": "%A", + "level_nickname": {"DEBUG": "DEBUG", "INFO": "INFO", "WARN": "WARN", "ERRO": "ERRO", "CRIT": "CRIT"}, + "level_color": {"DEBUG": "#c1d5ff", "INFO": "#c1ffff", "WARN": "#fff600", "ERRO": "#ffa000", "CRIT": "#ff8181"}, + "time_color": "#28ffb6", +} + +# 占位符 +_placeholder: dict[str, str | bytes] = { + "asctime": "{get_asctime()}", + "time": "{get_time()}", + "weekday": "{get_weekday()}", + "date": "{get_date()}", + "levelname": "{await fmt_level_number_to_name(level_number)}", + "level_number": "{await fmt_level_name_to_number(levelname)}", + "message": "{message}", + "prefix": "{prefix}", + "suffix": "{suffix}", +} + +# 日志级别映射 +_level_name_map: dict[str, int | float] = { + "DEBUG": 0, + "INFO": 10, + "WARN": 20, + "ERRO": 30, + "CRIT": 40, + "UNKN": -1, +} \ No newline at end of file diff --git a/src/logiliteal/utils/formats.py b/src/logiliteal/utils/formats.py index 4fa2415..8503660 100644 --- a/src/logiliteal/utils/formats.py +++ b/src/logiliteal/utils/formats.py @@ -7,29 +7,7 @@ from .time import get_asctime, get_time, get_weekday, get_date from .styles import set_color from .configs import get_config from .regex import process_color_formatting, process_html_styles, process_links, process_markdown_formats, process_special_tags - -# 占位符 -_placeholder: dict[str, str | bytes] = { - "asctime": "{get_asctime()}", - "time": "{get_time()}", - "weekday": "{get_weekday()}", - "date": "{get_date()}", - "levelname": "{await fmt_level_number_to_name(level_number)}", - "level_number": "{await fmt_level_name_to_number(levelname)}", - "message": "{message}", - "prefix": "{prefix}", - "suffix": "{suffix}", -} - -# 日志级别映射 -_level_name_map: dict[str, int | float] = { - "DEBUG": 0, - "INFO": 10, - "WARN": 20, - "ERRO": 30, - "CRIT": 40, - "UNKN": -1, -} +from .env import _placeholder, _level_name_map async def fmt_level_number_to_name(level_number: int | float) -> str: """