v0.0.52: файловый лог /tmp/drhider.log (LOG_FILE env) — логи видны в поде через kubectl exec
Deploy drhider / validate (push) Canceled after 0s

This commit is contained in:
“Naeel”
2026-08-20 08:12:23 +03:00
parent 59a66278a3
commit 3ae7d325e2
2 changed files with 50 additions and 15 deletions
+26 -15
View File
@@ -21,27 +21,38 @@ if _sys_path_root not in sys.path:
sys.path.insert(0, _sys_path_root)
# Версия приложения (меняется при изменениях)
VERSION = "0.0.51"
VERSION = "0.0.52"
def setup_logging():
"""Настроить логирование. Уровень берётся из env LOG_LEVEL (DEBUG/INFO/WARNING)."""
"""Настроить логирование. Уровень из env LOG_LEVEL (DEBUG/INFO/WARNING).
Логи пишутся в stderr (для локального запуска) И в файл /tmp/drhider.log
(для кубера, где stdout/stderr контейнера может не попадать в kubectl logs).
Путь файла можно переопределить env LOG_FILE.
"""
level_name = os.environ.get("LOG_LEVEL", "INFO").upper()
level = getattr(logging, level_name, logging.INFO)
logging.basicConfig(
level=level,
format="%(asctime)s %(levelname)s [%(name)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
stream=sys.stderr,
force=True,
)
logging.getLogger("drhider").setLevel(level)
logging.getLogger("app").setLevel(level)
logging.getLogger("routes").setLevel(level)
logging.getLogger("session").setLevel(level)
logging.getLogger(__name__).setLevel(level)
log_file = os.environ.get("LOG_FILE", "/tmp/drhider.log")
fmt = logging.Formatter("%(asctime)s %(levelname)s [%(name)s] %(message)s", "%Y-%m-%d %H:%M:%S")
root = logging.getLogger()
root.setLevel(level)
root.handlers.clear()
sh = logging.StreamHandler(sys.stderr)
sh.setLevel(level)
sh.setFormatter(fmt)
root.addHandler(sh)
try:
fh = logging.FileHandler(log_file, encoding="utf-8")
fh.setLevel(level)
fh.setFormatter(fmt)
root.addHandler(fh)
except Exception as e: # файл не открылся — не падаем
sys.stderr.write(f"[app] cannot open log file {log_file}: {e}\n")
for name in ("drhider", "app", "routes", "session", __name__):
logging.getLogger(name).setLevel(level)
log = logging.getLogger("app")
log.info("Logging configured, level=%s, version=%s", level_name, VERSION)
log.info("Logging configured, level=%s, version=%s, file=%s", level_name, VERSION, log_file)
def create_app():