perf(logging): rich finds the aiogram router path with find_spec, setup_logging no longer imports aiogram in every service
This commit is contained in:
1 parent
eadfa3d8ec
commit
47debebc0c
1 file changed
+10
-4
@@ -1,5 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
{% if 'aiogram_bot' in backend_services %}from importlib.util import find_spec
|
||||||
|
from pathlib import Path
|
||||||
|
{% endif %}
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.logging import RichHandler
|
from rich.logging import RichHandler
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
@@ -10,8 +12,12 @@ console = Console(width=env.log.console_width, color_system="auto", force_termin
|
|||||||
|
|
||||||
|
|
||||||
def setup_logging() -> None:
|
def setup_logging() -> None:
|
||||||
{% if 'aiogram_bot' in backend_services %} from aiogram.dispatcher import router # noqa: PLC0415
|
{% if 'aiogram_bot' in backend_services %} aiogram = find_spec("aiogram")
|
||||||
|
suppress = (
|
||||||
|
[str(Path(aiogram.origin).parent / "dispatcher")]
|
||||||
|
if aiogram and aiogram.origin
|
||||||
|
else []
|
||||||
|
)
|
||||||
{% endif %} logging.basicConfig(
|
{% endif %} logging.basicConfig(
|
||||||
level=env.log.level_external,
|
level=env.log.level_external,
|
||||||
format="",
|
format="",
|
||||||
@@ -26,7 +32,7 @@ def setup_logging() -> None:
|
|||||||
omit_repeated_times=False,
|
omit_repeated_times=False,
|
||||||
show_time=env.log.show_time,
|
show_time=env.log.show_time,
|
||||||
{%- if 'aiogram_bot' in backend_services %}
|
{%- if 'aiogram_bot' in backend_services %}
|
||||||
tracebacks_suppress=[router],
|
tracebacks_suppress=suppress,
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in new issue
Block a user