ahvn.utils.basic.log_utils module

ahvn.utils.basic.log_utils.get_logger(name, level=None, fmt=None, datefmt=None, style='%', *, validate=True, colors=None)[源代码]

Get a logger with a custom colored formatter.

参数:
  • name (str) -- The name of the logger.

  • level (Optional[Union[str, int]]) -- The default log level.

  • fmt (Optional[str]) -- The log message format.

  • datefmt (Optional[str]) -- The date format.

  • colors (Optional[dict[int, Callable[[Any, bool], str]]]) -- Custom color functions for log levels.

  • style (str)

  • validate (bool)

返回:

The configured logger.

返回类型:

logging.Logger

ahvn.utils.basic.log_utils.set_log_level(level, loggers=None)[源代码]

Set the log level globally for ahvn and optionally other loggers.

参数:
  • level (Union[str, int]) -- The log level (e.g., "DEBUG", "INFO", "WARNING", logging.WARNING).

  • loggers (Optional[List[str]]) -- List of logger names to configure. If None, configures "ahvn" logger and root logger.

返回类型:

None

示例

>>> set_log_level("WARNING")  # Suppress INFO/DEBUG messages
>>> set_log_level(logging.DEBUG, ["ahvn", "myapp"])  # Enable debug for specific loggers
ahvn.utils.basic.log_utils.redirect_logs(filepath, loggers=None, level=None, fmt=None)[源代码]

Redirect ahvn logging output to a file.

参数:
  • filepath (str) -- Path to the log file.

  • loggers (Optional[List[str]]) -- List of logger names to redirect. If None, redirects "ahvn" logger.

  • level (Optional[Union[str, int]]) -- Log level for the file handler. If None, uses the current logger level.

  • fmt (Optional[str]) -- Log message format.

返回类型:

None

示例

>>> redirect_logs("/tmp/ahvn.log")
>>> redirect_logs("/tmp/debug.log", level="DEBUG", loggers=["ahvn", "myapp"])
ahvn.utils.basic.log_utils.restore_logs(loggers=None)[源代码]

Restore original log handlers for specified loggers.

参数:

loggers (Optional[List[str]]) -- List of logger names to restore. If None, restores all loggers that were modified.

返回类型:

None

示例

>>> restore_logs()  # Restore all modified loggers
>>> restore_logs(["ahvn"])  # Restore specific logger
class ahvn.utils.basic.log_utils.SuppressOutput(suppress_stdout=True, suppress_stderr=True)[源代码]

基类:object

Context manager to suppress stdout/stderr at the OS file descriptor level.

This is more aggressive than redirecting sys.stdout/sys.stderr and can capture output from C libraries and subprocesses as well.

Use restore() and suppress() methods for temporary restoration during the suppression context (e.g., for updating progress displays).

参数:
  • suppress_stdout (bool)

  • suppress_stderr (bool)

suppress_stdout

Whether to suppress stdout.

Type:

bool

suppress_stderr

Whether to suppress stderr.

Type:

bool

示例

>>> with SuppressOutput():
...     # All output suppressed here
...     noisy_library_call()
>>> with SuppressOutput(suppress_stderr=False):
...     # Only stdout suppressed, stderr still visible
...     pass
>>> with SuppressOutput() as suppressor:
...     noisy_setup()
...     suppressor.restore()  # Temporarily show output
...     print("Progress update")
...     suppressor.suppress()  # Continue suppressing
...     more_noisy_code()
__init__(suppress_stdout=True, suppress_stderr=True)[源代码]

Initialize the SuppressOutput context manager.

参数:
  • suppress_stdout (bool) -- Whether to suppress stdout. Defaults to True.

  • suppress_stderr (bool) -- Whether to suppress stderr. Defaults to True.

suppress()[源代码]

Redirect stdout/stderr to devnull.

返回类型:

None

restore()[源代码]

Restore original stdout/stderr temporarily.

返回类型:

None