# This import ensures compatibility with the standard logging module
from importlib.metadata import version
from logging import (
    BASIC_FORMAT,
    CRITICAL,
    DEBUG,
    ERROR,
    FATAL,
    INFO,
    NOTSET,
    WARN,
    WARNING,
    BufferingFormatter,
    FileHandler,
    Filter,
    Formatter,
    Handler,
    Logger,
    LoggerAdapter,
    LogRecord,
    NullHandler,
    RootLogger,
    StreamHandler,
    addLevelName,
    basicConfig,
    captureWarnings,
    critical,
    debug,
    disable,
    error,
    exception,
    fatal,
    getLevelName,
    getLogger,
    getLoggerClass,
    getLogRecordFactory,
    info,
    lastResort,
    log,
    makeLogRecord,
    raiseExceptions,
    root,
    setLoggerClass,
    setLogRecordFactory,
    shutdown,
    warning,
)

# azure-datalake-logging
from .formatters import JsonFormatter
from .handlers import (
    # DatalakeBlobHandler,
    # DatalakeQueueHandler,
    DatalakeTableHandler,
)

__all__ = [
    # Standard logging imports
    "BASIC_FORMAT",
    "CRITICAL",
    "DEBUG",
    "ERROR",
    "FATAL",
    "INFO",
    "NOTSET",
    "WARN",
    "WARNING",
    "BufferingFormatter",
    "FileHandler",
    "Filter",
    "Formatter",
    "Handler",
    "Logger",
    "LoggerAdapter",
    "LogRecord",
    "NullHandler",
    "RootLogger",
    "StreamHandler",
    "addLevelName",
    "basicConfig",
    "captureWarnings",
    "critical",
    "debug",
    "disable",
    "error",
    "exception",
    "fatal",
    "getHandlerByName",
    "getHandlerNames",
    "getLevelName",
    "getLevelNamesMapping",
    "getLogger",
    "getLoggerClass",
    "getLogRecordFactory",
    "info",
    "lastResort",
    "log",
    "makeLogRecord",
    "raiseExceptions",
    "root",
    "setLoggerClass",
    "setLogRecordFactory",
    "shutdown",
    "warning",
    # Custom handlers
    # "DatalakeBlobHandler",
    # "DatalakeQueueHandler",
    "DatalakeTableHandler",
    # Custom formatter
    "JsonFormatter",
]


__version__ = version("azure-datalake-logging")
__author__ = "Markus Feiks"
__status__ = "development"
__date__ = "2025-04-13"
