Source code for surrealengine.logging

import logging
from typing import Optional, Dict, Any

[docs] class SurrealEngineLogger: """Logger for SurrealEngine. This class provides a centralized logging system for SurrealEngine, with support for different log levels and configurable handlers. Attributes: logger: The underlying logger instance """
[docs] def __init__(self, name: str = 'surrealengine', level: int = logging.INFO): """Initialize a SurrealEngineLogger. Args: name: The name of the logger level: The log level to use """ self.logger = logging.getLogger(name) self.logger.setLevel(level) # Add a console handler if none exists if not self.logger.handlers: handler = logging.StreamHandler() handler.setFormatter(logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' )) self.logger.addHandler(handler)
[docs] def set_level(self, level: int): """Set the log level. Args: level: The log level to use """ self.logger.setLevel(level)
[docs] def add_file_handler(self, filename: str, level: Optional[int] = None): """Add a file handler to the logger. Args: filename: The name of the log file level: The log level for the file handler (defaults to logger level) """ handler = logging.FileHandler(filename) handler.setFormatter(logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' )) if level is not None: handler.setLevel(level) self.logger.addHandler(handler)
[docs] def debug(self, msg: str, *args, **kwargs): """Log a debug message. Args: msg: The message to log *args: Additional arguments to pass to the logger **kwargs: Additional keyword arguments to pass to the logger """ self.logger.debug(msg, *args, **kwargs)
[docs] def info(self, msg: str, *args, **kwargs): """Log an info message. Args: msg: The message to log *args: Additional arguments to pass to the logger **kwargs: Additional keyword arguments to pass to the logger """ self.logger.info(msg, *args, **kwargs)
[docs] def warning(self, msg: str, *args, **kwargs): """Log a warning message. Args: msg: The message to log *args: Additional arguments to pass to the logger **kwargs: Additional keyword arguments to pass to the logger """ self.logger.warning(msg, *args, **kwargs)
[docs] def error(self, msg: str, *args, **kwargs): """Log an error message. Args: msg: The message to log *args: Additional arguments to pass to the logger **kwargs: Additional keyword arguments to pass to the logger """ self.logger.error(msg, *args, **kwargs)
[docs] def critical(self, msg: str, *args, **kwargs): """Log a critical message. Args: msg: The message to log *args: Additional arguments to pass to the logger **kwargs: Additional keyword arguments to pass to the logger """ self.logger.critical(msg, *args, **kwargs)
[docs] def exception(self, msg: str, *args, **kwargs): """Log an exception message. Args: msg: The message to log *args: Additional arguments to pass to the logger **kwargs: Additional keyword arguments to pass to the logger """ self.logger.exception(msg, *args, **kwargs)
[docs] def log(self, level: int, msg: str, *args, **kwargs): """Log a message at the specified level. Args: level: The log level to use msg: The message to log *args: Additional arguments to pass to the logger **kwargs: Additional keyword arguments to pass to the logger """ self.logger.log(level, msg, *args, **kwargs)
# Create a singleton instance of the logger logger = SurrealEngineLogger()