log struktural¶
Logfire Ada built-in log struktur Handler yang dapat digunakan untuk mengeluarkan log Logfire untuk setiap event structlog.
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')
Prosesor logikaharusberlokasi di log struktur Sebelum prosesor terakhir dalam konfigurasi untuk merender log.
Secara default,LogfireProcessor yang ditunjukkan di atas menonaktifkan konsol logging untuk logfire, sehingga Anda dapat menggunakan logger yang ada yang dikonfigurasi untuk structlog, jika Anda ingin menggunakan logfire untuk log, gunakan LogfireProcessor(console_log=True)
...
Perhatian
Parameter posisi tidak dikumpulkan sebagai properti oleh prosesor karena sudah menjadi bagian dari pesan acara saat prosesor dipanggil.
Jika Anda memiliki kondisi berikut:
logger.error('Hello %s!', 'Fred')
#> 2024-03-22 13:39:26 [error ] Hello Fred!
String "Fred" tidak dikumpulkan sebagai atribut oleh prosesor, tetapi diformat menggunakan pesan.
本文总阅读量次