/
OS-Worldb968155
# Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
#
# SPDX-License-Identifier: Apache-2.0
#
# Portions derived from https://github.com/microsoft/autogen are under the MIT License.
# SPDX-License-Identifier: MIT
from typing import Any, Literal, Optional
from ..doc_utils import export_module
from .base_logger import BaseLogger
from .file_logger import FileLogger
from .sqlite_logger import SqliteLogger
__all__ = ("LoggerFactory",)
@export_module("autogen.logger")
class LoggerFactory:
"""Factory class to create logger objects."""
@staticmethod
def get_logger(
logger_type: Literal["sqlite", "file"] = "sqlite", config: Optional[dict[str, Any]] = None
) -> BaseLogger:
"""Factory method to create logger objects.
Args:
logger_type (Literal["sqlite", "file"], optional): Type of logger. Defaults to "sqlite".
config (Optional[dict[str, Any]], optional): Configuration for logger. Defaults to None.
Returns:
BaseLogger: Logger object
"""
if config is None:
config = {}
if logger_type == "sqlite":
return SqliteLogger(config)
elif logger_type == "file":
return FileLogger(config)
else:
raise ValueError(f"[logger_factory] Unknown logger type: {logger_type}")