Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 3 additions & 26 deletions agent/custom/action/Common/logger.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,7 @@
import logging
import os
from pathlib import Path

from utils.logger import get_logger as _get_shared_logger

def get_logger(name: str) -> logging.Logger:
logger = logging.getLogger(name)
if logger.handlers:
return logger

logger.setLevel(logging.DEBUG)

log_dir = Path("./debug")
log_dir.mkdir(parents=True, exist_ok=True)
fh = logging.FileHandler(log_dir / "agent.log", encoding="utf-8")
fh.setLevel(logging.DEBUG)

ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

fmt = logging.Formatter(
"[%(asctime)s][%(name)s][%(levelname)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
fh.setFormatter(fmt)
ch.setFormatter(fmt)

logger.addHandler(fh)
logger.addHandler(ch)
return logger
def get_logger(name: str) -> logging.Logger:
return _get_shared_logger(name)
48 changes: 33 additions & 15 deletions agent/utils/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,9 @@ def format(self, record):
_FILE_FORMAT = logging.Formatter(
"%(asctime)s | %(levelname)-8s | %(name)s:%(funcName)s:%(lineno)d | %(message)s"
)
_std_logger = logging.getLogger("maante")
_APP_LOGGER_NAME = "maante"
_ROOT_LOGGER = logging.getLogger()
_NOISY_LOGGER_NAMES = ("cv2", "numpy", "PIL", "matplotlib", "urllib3", "asyncio")


def _resolve_level(level) -> int:
Expand All @@ -147,6 +149,15 @@ def _resolve_level(level) -> int:
return getattr(logging, str(level).upper(), logging.INFO)


def _configure_noisy_loggers():
for name in _NOISY_LOGGER_NAMES:
logging.getLogger(name).setLevel(logging.WARNING)


def get_logger(name=None):
return logging.getLogger(name or _APP_LOGGER_NAME)


def _setup_loguru_logger(log_dir="debug/custom", console_level="INFO"):
os.makedirs(log_dir, exist_ok=True)
_loguru_logger.remove()
Expand All @@ -172,25 +183,26 @@ def _setup_loguru_logger(log_dir="debug/custom", console_level="INFO"):
filter=_enrich_record,
)

logging.root.handlers = [_InterceptHandler()]
logging.root.setLevel(logging.DEBUG)
for name in ("cv2", "numpy", "PIL", "matplotlib", "urllib3", "asyncio"):
logging.getLogger(name).setLevel(logging.WARNING)
_ROOT_LOGGER.handlers = [_InterceptHandler()]
_ROOT_LOGGER.setLevel(logging.DEBUG)
Comment thread
sourcery-ai[bot] marked this conversation as resolved.
_configure_noisy_loggers()

return _loguru_logger
app_logger = get_logger(_APP_LOGGER_NAME)
app_logger.setLevel(logging.NOTSET)
app_logger.propagate = True
return app_logger
Comment thread
sourcery-ai[bot] marked this conversation as resolved.


def _setup_std_logger(log_dir="debug/custom", console_level="INFO"):
os.makedirs(log_dir, exist_ok=True)

_std_logger.handlers.clear()
_std_logger.setLevel(logging.DEBUG)
_std_logger.propagate = False
_ROOT_LOGGER.handlers.clear()
_ROOT_LOGGER.setLevel(logging.DEBUG)

console_handler = logging.StreamHandler(_resolve_console_stream())
console_handler.setLevel(_resolve_level(console_level))
console_handler.setFormatter(_ConsoleFormatter())
_std_logger.addHandler(console_handler)
_ROOT_LOGGER.addHandler(console_handler)

file_handler = TimedRotatingFileHandler(
os.path.join(log_dir, "runtime.log"),
Expand All @@ -201,13 +213,18 @@ def _setup_std_logger(log_dir="debug/custom", console_level="INFO"):
)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(_FILE_FORMAT)
_std_logger.addHandler(file_handler)
_ROOT_LOGGER.addHandler(file_handler)

_configure_noisy_loggers()

return _std_logger
app_logger = get_logger(_APP_LOGGER_NAME)
app_logger.setLevel(logging.NOTSET)
app_logger.propagate = True
return app_logger


def setup_logger(log_dir="debug/custom", console_level="INFO"):
"""设置 logger(优先 loguru,无 loguru 时回退到标准 logging)"""
"""设置统一 logger(优先 loguru,无 loguru 时回退到标准 logging)"""
if _HAS_LOGURU:
return _setup_loguru_logger(log_dir=log_dir, console_level=console_level)
return _setup_std_logger(log_dir=log_dir, console_level=console_level)
Expand All @@ -219,6 +236,7 @@ def change_console_level(level="DEBUG"):
logger.info(f"控制台日志等级已更改为: {level}")


logger = setup_logger(console_level="WARNING" if _is_mxu_client() else "INFO")
setup_logger(console_level="WARNING" if _is_mxu_client() else "INFO")
logger = get_logger(_APP_LOGGER_NAME)

__all__ = ["setup_logger", "change_console_level", "logger"]
__all__ = ["setup_logger", "change_console_level", "get_logger", "logger"]
Loading