- Fixed
errorIfNotDebugandcriticalIfNotDebugmethods - Now properly pass through all remaining**kwargsto underlying logging methods - Added
*argsand**kwargssupport togetLevelNameandgetLevelNameStr- These wrapper functions now accept and forward all arguments tologging.getLevelNamefor consistency and future-proofing
registerLogger(name)- Register a logger name for use bygetLogger()getLogger(name=None)- Get a logger instance (uses registered name if available)getLoggerOfType(logger_type, name=None)- Get a logger of a specific typeregisterDefaultLogLevel(level)- Set the default log levelregisterLogLevelEnvVars(*env_vars)- Register environment variables to check for log levelregisterCompatibilityMode(enabled)- Enable/disable stdlib compatibility moderegisterPropagate(propagate)- Set default propagate setting for loggersregisterTargetPythonVersion(version)- Register target Python version for compatibility
hasLogger(name)- Check if a logger exists in the registryremoveLogger(name)- Remove a logger from the registrygetRegisteredLoggerName()- Get the currently registered logger namegetDefaultLoggerName()- Get default logger name with optional inference
getLevelNumber(level)- Get numeric value for a log levelgetLevelNameStr(level)- Get string name for a log levelgetLogLevelEnvVars()- Get registered environment variable namesgetDefaultLogLevel()- Get the registered default log levelgetCompatibilityMode()- Get compatibility mode settinggetTargetPythonVersion()- Get target Python versiongetDefaultPropagate()- Get default propagate setting
safeLog(level, message, *args, **kwargs)- Emergency logger that never failssafeTrace(message, icon='🔍')- Debug tracing function for test developmentmakeSafeTrace(icon='🔍')- Create a test trace function with a custom icon
Note: This release includes a single-file build (apathetic_logging.py) attached to this release for easy embedding in projects that need a standalone logging solution.