Logs
Logs SDK
Server-side client over POST /api/logs/v1/ingest. Batches events, redacts sensitive fields client-side, and never throws from log/flush/close into your app.
Install
Package: @mydle/logs. Use only on servers and workers — not in browsers.
import { createMydleLogger } from "@mydle/logs";
const logger = createMydleLogger({
apiKey: process.env.MYDLE_API_KEY!, // or sourceToken: "lt_…"
service: "api",
environment: "production",
});
logger.info("Application started");
logger.warn("Something looks wrong");
logger.error(error);
await logger.flush();
await logger.close();API
trace/debug/info/warn/error/fatal— level helpers.log(event)— full event with explicitlevel.flush()— drain the queue; resolves after send success or definitive failure.close()— flush, stop accepting events, clear timers.
Options
apiKeyorsourceToken— required credential.endpoint— absolute HTTP(S) ingest URL. Default: product host…/api/logs/v1/ingest. Relative paths are rejected by the SDK.service,environment,release— defaults applied to events.- Queue overflow policy:
drop_oldestonly.
Correlation context
Pass traceId, spanId, sessionId, and requestId on context when you have them. The SDK can also attach active OpenTelemetry traceId / spanId when @opentelemetry/api has a valid span — explicit fields win. No IDs are invented when context is empty.
Limitations
- Server-side only — not a browser logger.
- Host callback
onErrormust not throw back into the logger. - Failed batches after retries are dropped (reported via
onError), not invented later.