chore: lock runtime log output paths and ignore local logs

This commit is contained in:
qzl
2026-02-25 10:32:19 +08:00
parent 1dcfbbe33f
commit d16e66807d
4 changed files with 165 additions and 3 deletions
+21 -1
View File
@@ -4,7 +4,7 @@ from pathlib import Path
from typing import ClassVar, Literal
from urllib.parse import quote
from pydantic import BaseModel, Field, computed_field
from pydantic import BaseModel, Field, computed_field, field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict
@@ -37,6 +37,26 @@ class RuntimeSettings(BaseModel):
)
sql_log_queries: bool = False
@field_validator("log_dir", mode="before")
@classmethod
def lock_log_dir(cls, _: object) -> str:
return "logs"
@field_validator("log_error_dir", mode="before")
@classmethod
def lock_log_error_dir(cls, _: object) -> str:
return "logs/errors"
@field_validator("log_file_name", mode="before")
@classmethod
def lock_log_file_name(cls, _: object) -> str:
return "app.log"
@field_validator("log_error_file_name", mode="before")
@classmethod
def lock_log_error_file_name(cls, _: object) -> str:
return "error.log"
class CelerySettings(BaseModel):
broker_url: str | None = None
+6 -2
View File
@@ -24,12 +24,16 @@ def test_runtime_settings_defaults() -> None:
def test_runtime_settings_env_override(monkeypatch: MonkeyPatch) -> None:
monkeypatch.setenv("SOCIAL_RUNTIME__LOG_DIR", "var/logs")
monkeypatch.setenv("SOCIAL_RUNTIME__LOG_ERROR_DIR", "var/logs/errors")
monkeypatch.setenv("SOCIAL_RUNTIME__LOG_FILE_NAME", "custom.log")
monkeypatch.setenv("SOCIAL_RUNTIME__LOG_ERROR_FILE_NAME", "custom-error.log")
monkeypatch.setenv("SOCIAL_RUNTIME__LOG_ROTATION", "size")
monkeypatch.setenv("SOCIAL_RUNTIME__LOG_ROTATION_MAX_BYTES", "2048")
settings = Settings()
assert settings.runtime.log_dir == "var/logs"
assert settings.runtime.log_error_dir == "var/logs/errors"
assert settings.runtime.log_dir == "logs"
assert settings.runtime.log_error_dir == "logs/errors"
assert settings.runtime.log_file_name == "app.log"
assert settings.runtime.log_error_file_name == "error.log"
assert settings.runtime.log_rotation == "size"
assert settings.runtime.log_rotation_max_bytes == 2048