fix: simplify log setup
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
CI / lint (push) Skipped
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
This commit is contained in:
@@ -69,34 +69,26 @@ def get_uvicorn_logging_config() -> dict:
|
||||
}
|
||||
|
||||
|
||||
def get_config_path(env: str = "dev") -> Path:
|
||||
module_dir = Path(__file__).parent
|
||||
config_filename = f"logging_{env}.yaml"
|
||||
config_path = module_dir / "logging_configs" / config_filename
|
||||
|
||||
def get_log_config() -> dict:
|
||||
config_path = Path(__file__).parent / "logging.yaml"
|
||||
if not config_path.exists():
|
||||
raise FileNotFoundError(f"Logging config not found: {config_path}")
|
||||
|
||||
return config_path
|
||||
with open(config_path, "r") as f:
|
||||
return yaml.safe_load(f.read())
|
||||
|
||||
|
||||
# TODO fix logging.
|
||||
def setup_logger(
|
||||
name="aareDAQ", base_dir: str | None = "~/tmp/mxlogs/", config_path: str | None = None
|
||||
):
|
||||
# switch to production mode using: $ APP_ENV=prod python main.py
|
||||
env = os.getenv("APP_ENV", "dev") # default: dev
|
||||
_SETUP_DONE: bool = False
|
||||
|
||||
if config_path is None:
|
||||
config_file = get_config_path(env)
|
||||
else:
|
||||
config_file = Path(config_path)
|
||||
|
||||
with open(config_file, "r") as f:
|
||||
config = yaml.safe_load(f.read())
|
||||
def setup_logger(name: str, base_dir: str = "~/tmp/mxlogs/"):
|
||||
global _SETUP_DONE
|
||||
if _SETUP_DONE:
|
||||
return logging.getLogger(name)
|
||||
|
||||
config = get_log_config()
|
||||
|
||||
# Force base directory to be under the user's home dir
|
||||
effective_base = base_dir + f"{name}" or f"/tmp/logs/mxlogs/{name}"
|
||||
effective_base = base_dir + name
|
||||
effective_base = os.path.abspath(os.path.expanduser(os.path.expandvars(effective_base)))
|
||||
|
||||
# Ensure directories for file handlers exist
|
||||
@@ -114,11 +106,7 @@ def setup_logger(
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
|
||||
logging.config.dictConfig(config)
|
||||
logging.getLogger("redis_lock").setLevel(logging.WARNING)
|
||||
logging.getLogger("urllib3").setLevel(logging.WARNING)
|
||||
logging.getLogger("matplotlib.font_manager").setLevel(logging.WARNING)
|
||||
logging.getLogger("aaredaq").setLevel(logging.DEBUG) # DAQ
|
||||
logging.getLogger("aaregui").setLevel(logging.INFO)
|
||||
_SETUP_DONE = True
|
||||
return logging.getLogger(name)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
version: 1
|
||||
disable_existing_loggers: False
|
||||
|
||||
formatters:
|
||||
simple:
|
||||
format: "%(asctime)s - %(levelname)s - %(message)s"
|
||||
|
||||
handlers:
|
||||
console:
|
||||
class: logging.StreamHandler
|
||||
formatter: simple
|
||||
level: DEBUG
|
||||
stream: ext://sys.stdout
|
||||
journal:
|
||||
class: systemd.journal.JournaldLogHandler
|
||||
level: DEBUG
|
||||
|
||||
loggers:
|
||||
aaredaq:
|
||||
level: DEBUG
|
||||
aaregui:
|
||||
level: DEBUG
|
||||
redis_lock:
|
||||
level: WARNING
|
||||
urllib3:
|
||||
level: WARNING
|
||||
matplotlib:
|
||||
level: WARNING
|
||||
|
||||
root:
|
||||
level: WARNING
|
||||
handlers: [console, journal]
|
||||
@@ -1,45 +0,0 @@
|
||||
version: 1
|
||||
disable_existing_loggers: False
|
||||
|
||||
formatters:
|
||||
detailed:
|
||||
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
||||
|
||||
handlers:
|
||||
console:
|
||||
class: logging.StreamHandler
|
||||
level: DEBUG
|
||||
formatter: detailed
|
||||
stream: ext://sys.stdout
|
||||
|
||||
app_file:
|
||||
class: logging.handlers.RotatingFileHandler
|
||||
level: DEBUG
|
||||
formatter: detailed
|
||||
filename: app.log
|
||||
maxBytes: 1440000 #not to overflow a diskette
|
||||
backupCount: 10
|
||||
encoding: utf8
|
||||
|
||||
error_file:
|
||||
class: logging.handlers.RotatingFileHandler
|
||||
level: ERROR
|
||||
formatter: detailed
|
||||
filename: errors.log
|
||||
maxBytes: 1440000
|
||||
backupCount: 5
|
||||
encoding: utf8
|
||||
|
||||
loggers:
|
||||
aareDAQ:
|
||||
level: DEBUG
|
||||
handlers: [console, app_file, error_file]
|
||||
propagate: yes
|
||||
aareGUI:
|
||||
level: DEBUG
|
||||
handlers: [console, app_file, error_file]
|
||||
propagate: yes
|
||||
|
||||
root:
|
||||
level: DEBUG
|
||||
handlers: []
|
||||
@@ -1,39 +0,0 @@
|
||||
version: 1
|
||||
disable_existing_loggers: False
|
||||
|
||||
formatters:
|
||||
simple:
|
||||
format: "%(asctime)s - %(levelname)s - %(message)s"
|
||||
|
||||
handlers:
|
||||
app_file:
|
||||
class: logging.handlers.RotatingFileHandler
|
||||
level: INFO
|
||||
formatter: simple
|
||||
filename: logs/app.log
|
||||
maxBytes: 1000000
|
||||
backupCount: 10
|
||||
encoding: utf8
|
||||
|
||||
error_file:
|
||||
class: logging.handlers.RotatingFileHandler
|
||||
level: ERROR
|
||||
formatter: simple
|
||||
filename: logs/errors.log
|
||||
maxBytes: 500000
|
||||
backupCount: 5
|
||||
encoding: utf8
|
||||
|
||||
loggers:
|
||||
aareDAQ:
|
||||
level: DEBUG
|
||||
handlers: [console, app_file, error_file]
|
||||
propagate: no
|
||||
aareGUI:
|
||||
level: DEBUG
|
||||
handlers: [ console, app_file, error_file ]
|
||||
propagate: n
|
||||
|
||||
root:
|
||||
level: WARNING
|
||||
handlers: []
|
||||
Reference in New Issue
Block a user