mirror of
https://github.com/imayushsaini/Bombsquad-Ballistica-Modded-Server.git
synced 2025-10-20 00:00:39 +00:00
107 lines
3.6 KiB
Python
107 lines
3.6 KiB
Python
# Released under the MIT License. See LICENSE for details.
|
|
#
|
|
"""Logging functionality."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
from enum import Enum
|
|
from typing import TYPE_CHECKING, assert_never
|
|
from bacommon.loggercontrol import LoggerControlConfig
|
|
|
|
if TYPE_CHECKING:
|
|
pass
|
|
|
|
|
|
# IMPORTANT: If making any changes here, be sure to update
|
|
# binding_core.py and baenv.py where some of these same values are
|
|
# hard-coded at engine init (when they don't yet have access to this
|
|
# module).
|
|
|
|
|
|
class ClientLoggerName(Enum):
|
|
"""Logger names used on the Ballistica client."""
|
|
|
|
BA = 'ba'
|
|
ENV = 'ba.env'
|
|
APP = 'ba.app'
|
|
ASSETS = 'ba.assets'
|
|
AUDIO = 'ba.audio'
|
|
CACHE = 'ba.cache'
|
|
DISPLAYTIME = 'ba.displaytime'
|
|
GARBAGE_COLLECTION = 'ba.gc'
|
|
GRAPHICS = 'ba.gfx'
|
|
PERFORMANCE = 'ba.perf'
|
|
INPUT = 'ba.input'
|
|
LIFECYCLE = 'ba.lifecycle'
|
|
NETWORKING = 'ba.net'
|
|
CONNECTIVITY = 'ba.connectivity'
|
|
V2TRANSPORT = 'ba.v2transport'
|
|
CLOUD_SUBSCRIPTION = 'ba.cloudsub'
|
|
ACCOUNT_CLIENT_V2 = 'ba.accountclientv2'
|
|
ACCOUNT = 'ba.account'
|
|
LOGIN_ADAPTER = 'ba.loginadapter'
|
|
|
|
@property
|
|
def description(self) -> str:
|
|
"""Return a short description for the logger."""
|
|
# pylint: disable=too-many-return-statements
|
|
# pylint: disable=too-many-branches
|
|
cls = type(self)
|
|
if self is cls.BA:
|
|
return 'top level Ballistica logger - use to adjust everything'
|
|
if self is cls.ENV:
|
|
return 'engine environment bootstrapping'
|
|
if self is cls.APP:
|
|
return 'general app operation - INFO is visible by default'
|
|
if self is cls.ASSETS:
|
|
return 'textures, sounds, models, etc.'
|
|
if self is cls.AUDIO:
|
|
return 'sound and music playback'
|
|
if self is cls.CACHE:
|
|
return 'cache dir - holds pycache, assets, etc.'
|
|
if self is cls.DISPLAYTIME:
|
|
return 'timing for smooth animation display'
|
|
if self is cls.GARBAGE_COLLECTION:
|
|
return 'garbage collection - debug memory leaks/etc.'
|
|
if self is cls.GRAPHICS:
|
|
return 'anything graphics related'
|
|
if self is cls.PERFORMANCE:
|
|
return 'debug rendering speed, hitches, etc.'
|
|
if self is cls.INPUT:
|
|
return 'keyboards, touchscreens, game-controllers, etc.'
|
|
if self is cls.LIFECYCLE:
|
|
return 'bootstrapping, pausing, resuming, shutdown, etc.'
|
|
if self is cls.NETWORKING:
|
|
return 'anything network related'
|
|
if self is cls.CONNECTIVITY:
|
|
return 'determining nearest/best regional servers'
|
|
if self is cls.V2TRANSPORT:
|
|
return 'persistent connections to regional servers'
|
|
if self is cls.CLOUD_SUBSCRIPTION:
|
|
return 'live values fed from regional server'
|
|
if self is cls.ACCOUNT_CLIENT_V2:
|
|
return 'server communication for v2 accounts'
|
|
if self is cls.ACCOUNT:
|
|
return 'account functionality'
|
|
if self is cls.LOGIN_ADAPTER:
|
|
return 'support for particular login types'
|
|
assert_never(self)
|
|
|
|
|
|
def get_base_logger_control_config_client() -> LoggerControlConfig:
|
|
"""Return the logger-control-config used by the Ballistica client.
|
|
|
|
This should remain consistent since local logger configurations
|
|
are stored relative to this.
|
|
"""
|
|
|
|
# By default, go with WARNING on everything to keep things mostly
|
|
# clean but show INFO for ba.app to get basic app startup messages
|
|
# and whatnot.
|
|
return LoggerControlConfig(
|
|
levels={
|
|
'root': logging.WARNING,
|
|
ClientLoggerName.APP.value: logging.INFO,
|
|
}
|
|
)
|