콘텐츠로 이동

구조 로그

Logfire에는구성표프로세서가 내장되어 있어 각 구성표 이벤트에 대해 Logfire 로그를 발급하는 데 사용할 수 있습니다.

main.py
from dataclasses import dataclass

import structlog
import logfire

logfire.configure()

structlog.configure(
    processors=[
        structlog.contextvars.merge_contextvars,
        structlog.processors.add_log_level,
        structlog.processors.StackInfoRenderer(),
        structlog.dev.set_exc_info,
        structlog.processors.TimeStamper(fmt='%Y-%m-%d %H:%M:%S', utc=False),
        logfire.StructlogProcessor(),
        structlog.dev.ConsoleRenderer(),
    ],
)
logger = structlog.get_logger()


@dataclass
class User:
    id: int
    name: str


logger.info('Login', user=User(id=42, name='Fred'))
#> 2024-03-22 12:57:33 [info     ] Login                          user=User(id=42, name='Fred')

로그파이어 프로세서필수에 위치 구조 로그 로그를 렌더링하는 구성의 마지막 프로세서 이전.

기본적으로 위에 표시된LogfireProcessor 는 로그파이어에 대한 콘솔 로깅을 비활성화하므로 구조용으로 구성된 기존 로거를 사용할 수 있습니다. 로깅에 로그파이어를 사용하려면LogfireProcessor(console_log=True) 를 사용하십시오. ...

주의

위치 매개 변수는 프로세서가 호출될 때 이미 이벤트 메시지의 일부이기 때문에 프로세서에 의해 속성으로 수집되지 않습니다.

다음과 같은 조건이 있는 경우:

logger.error('Hello %s!', 'Fred')
#> 2024-03-22 13:39:26 [error    ] Hello Fred!

문자열 "Fred"는 프로세서에서 속성으로 수집되지 않고 메시지를 사용하여 형식을 지정합니다.


本文总阅读量次