Skip to main content

Structured logging system for Spakky Framework

Project description

spakky-logging

Spakky Framework를 위한 구조화 로깅 시스템입니다. contextvars 기반 로그 컨텍스트 전파, 설정 가능한 formatter(Text, JSON, Pretty), AOP 기반 메서드 호출 로깅, PostProcessor 기반 자동 설정을 제공합니다.

설치

pip install spakky-logging

빠른 시작

1. 플러그인 자동 등록

spakky-loggingload_plugins()를 통해 자동으로 로드됩니다.

app = SpakkyApplication(ApplicationContext()).load_plugins().scan(my_app).start()

2. @logged로 메서드 표시

from spakky.plugins.logging import logged

class UserService:
    @logged()
    async def create_user(self, name: str, password: str) -> User:
        ...

3. 설정(선택)

LoggingConfig로 기본값을 override합니다.

from spakky.plugins.logging import LoggingConfig, LogFormat

config = LoggingConfig(
    level="DEBUG",
    format=LogFormat.JSON,
    mask_keys=frozenset({"password", "token", "secret"}),
    slow_threshold_ms=500,
)

4. LogContext 전파

모든 log record에 자동 포함될 contextual key-value pair를 바인딩합니다.

from spakky.plugins.logging import LogContext

LogContext.bind(request_id="req-123", user_id="u-456")

with LogContext.scope(trace_id="t-789"):
    # 이 block 안의 모든 log는 trace_id를 포함
    ...

주요 기능

기능 설명
@logged() annotation AOP 기반 method call/result/error 자동 logging
LogContext contextvars 기반 structured context propagation
ContextInjectingFilter 모든 LogRecord에 LogContext value 주입
SpakkyTextFormatter pipe-separated text format
SpakkyJsonFormatter line당 JSON object 하나
SpakkyPrettyFormatter 개발용 ANSI-colored multi-column format
LoggingConfig 중앙 logging configuration용 @Configuration pod
LoggingSetupPostProcessor application start 시 root logger 자동 설정
민감 데이터 masking log output에서 password, token, secret 등을 masking
느린 호출 감지 method execution이 threshold를 넘으면 warning 출력
결과 truncation 긴 return value를 log output에서 truncate

라이선스

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spakky_logging-6.5.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spakky_logging-6.5.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file spakky_logging-6.5.0.tar.gz.

File metadata

  • Download URL: spakky_logging-6.5.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spakky_logging-6.5.0.tar.gz
Algorithm Hash digest
SHA256 e5a58f1d86655894f57583376a283ea37a92356c97cdb4b673ee09f66487c7c5
MD5 b7745421b2539e19a025360681480a7d
BLAKE2b-256 beecd94a88be674f5305127e1d4dcdafdc7a29cb9f3b1a295cac3d5c381bbd05

See more details on using hashes here.

Provenance

The following attestation bundles were made for spakky_logging-6.5.0.tar.gz:

Publisher: release.yml on E5presso/spakky-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spakky_logging-6.5.0-py3-none-any.whl.

File metadata

  • Download URL: spakky_logging-6.5.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spakky_logging-6.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13e261dc7dc3f69345b55a0763b64b1b31cb33371240dc074fe90bfd945e29a7
MD5 adcf104c6bd75c057f41d3c462ebbe0d
BLAKE2b-256 03c84864cb49c1fdcbd7e0e8430de3fa76a252f32df465ba0ebcf4ed076da831

See more details on using hashes here.

Provenance

The following attestation bundles were made for spakky_logging-6.5.0-py3-none-any.whl:

Publisher: release.yml on E5presso/spakky-framework

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page