@cw-base/log
v0.1.1
Published
Minimal log abstraction with DI integration.
Downloads
20
Readme
@cw-base/log
Merkezi loglama servisinin sözleşmesini ve DI (dependency injection) entegrasyonunu sağlar. Provider seçimleri uygulama/bootstrap katmanında yapılır; paket yalnızca LogService ve LogProvider arayüzünü sunar.
Kurulum
pnpm add @cw-base/logLogService otomatik olarak DI konteynerine @Service dekoratörüyle kaydedilir. Provider token’ını (LOG_PROVIDER_TOKEN) uygulama tarafında istediğiniz sağlayıcı ile eşlersiniz.
import { Container } from "@cw-base/di";
import { LOG_PROVIDER_TOKEN, LogService } from "@cw-base/log";
import { createConsoleProvider } from "@cw-base/log-console";
const container = new Container();
container.register({
token: LOG_PROVIDER_TOKEN,
useFactory: () => createConsoleProvider()
});
const log = container.resolve(LogService);
await log.info("Application started", { version: "1.0.0" });API
LogService:write,log,trace,debug,info,warn,error,fatalLogService.createLogger(meta?): meta değerlerini varsayılan olarak ekleyen child logger döndürür.LogProvider:write(entry)sözleşmesi.Logger: servis ve child logger’ların implement ettiği arayüz.
Türler
export type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal";
export type LogMeta = Record<string, unknown>;
export interface LogEntry {
level: LogLevel;
message: string;
timestamp: Date;
meta: LogMeta;
}LogMeta serbest veri (context) taşımak için kullanılır; provider implementasyonları hedef sisteme uygun formata dönüştürebilir.
