fix(ml): move logging config to code (#32220)

This lets it be applied earlier on, so the initializing [version] log
line actually works.
This commit is contained in:
bo0tzz
2026-10-08 16:41:09 +02:00
committed by GitHub
parent 5fa7789e26
commit 655bfdb34f
4 changed files with 15 additions and 23 deletions
-2
View File
@@ -48,8 +48,6 @@ try:
str(settings.workers),
"-t",
str(settings.worker_timeout),
"--log-config-json",
module_dir / "log_conf.json",
"--keep-alive",
str(settings.http_keepalive_timeout_s),
"--graceful-timeout",
+11
View File
@@ -1,9 +1,11 @@
import concurrent.futures
import logging
import logging.config
import os
import sys
from pathlib import Path
from socket import socket
from typing import Any
from gunicorn.arbiter import Arbiter
from pydantic import BaseModel, Field
@@ -144,6 +146,15 @@ class CustomRichHandler(RichHandler):
return super().emit(record)
LOG_CONFIG: dict[str, Any] = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {"console": {"()": CustomRichHandler}},
"loggers": {"gunicorn.error": {"handlers": ["console"]}},
"root": {"handlers": ["console"]},
}
logging.config.dictConfig(LOG_CONFIG)
log = logging.getLogger("ml.log")
log.setLevel(LOG_LEVEL)
@@ -3,9 +3,13 @@ import os
from gunicorn.arbiter import Arbiter
from gunicorn.workers.base import Worker
from immich_ml.config import LOG_CONFIG
device_ids = os.environ.get("MACHINE_LEARNING_DEVICE_IDS", "0").replace(" ", "").split(",")
env = os.environ
logconfig_dict = LOG_CONFIG
# Round-robin device assignment for each worker
def pre_fork(arbiter: Arbiter, _: Worker) -> None:
-21
View File
@@ -1,21 +0,0 @@
{
"version": 1,
"disable_existing_loggers": false,
"handlers": {
"console": {
"class": "immich_ml.config.CustomRichHandler"
}
},
"loggers": {
"gunicorn.error": {
"handlers": [
"console"
]
}
},
"root": {
"handlers": [
"console"
]
}
}