Add opt-in logging via add_sink, silence library logger by default

This commit is contained in:
2026-06-03 09:33:32 +02:00
parent 6536ad60c5
commit 0faa01d89b
4 changed files with 48 additions and 9 deletions
+34 -1
View File
@@ -1,4 +1,37 @@
from typing import Any
from loguru import logger
from .config import DEBUG
from .engine import CachingEngine
from .exceptions import ReadOnlyError, UnsupportedQueryError
__all__ = ["CachingEngine", "ReadOnlyError", "UnsupportedQueryError"]
_DEFAULT_FORMAT = (
"<green>{time:YYYY-MM-DD HH:mm:ss}</green> | "
"<level>{level: <8}</level> | "
"<cyan>{name}</cyan>:<cyan>{line}</cyan> - "
"<level>{message}</level>"
)
def add_sink(sink: Any, *, level: str | None = None, **kwargs: Any) -> None:
"""Route sqlmem log records to *sink*.
Accepts any sink supported by loguru (file path, stream, callable, …).
*level* defaults to ``DEBUG`` when ``SQLMEM_DEBUG=true``, otherwise ``INFO``.
Extra keyword arguments are forwarded to :func:`loguru.logger.add`.
Example::
import sys
from sqlmem import add_sink
add_sink(sys.stderr)
add_sink("sqlmem.log", rotation="10 MB")
"""
logger.enable("sqlmem")
kwargs.setdefault("format", _DEFAULT_FORMAT)
kwargs.setdefault("colorize", True)
logger.add(sink, level=level or ("DEBUG" if DEBUG else "INFO"), filter="sqlmem", **kwargs)
__all__ = ["CachingEngine", "ReadOnlyError", "UnsupportedQueryError", "add_sink"]
+2 -7
View File
@@ -10,10 +10,5 @@ DEBUG = os.getenv("SQLMEM_DEBUG", "false").lower() == "true"
CACHE_DB_PATH = Path(os.getenv("SQLMEM_CACHE_DB", "cache.db"))
BACKUP_INTERVAL_SECONDS = int(os.getenv("SQLMEM_BACKUP_INTERVAL", "3600"))
logger.remove()
logger.add(
sink=lambda msg: print(msg, end=""),
level="DEBUG" if DEBUG else "INFO",
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>",
colorize=True,
)
# Silent by default — callers opt in via add_sink().
logger.disable("sqlmem")