chore: lock runtime log output paths and ignore local logs
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user