Listory/src/logger/logger.ts

32 lines
806 B
TypeScript

import { context, trace } from "@opentelemetry/api";
import Pino, { Logger, LoggerOptions } from "pino";
export const loggerOptions: LoggerOptions = {
level: "debug",
formatters: {
level(label) {
return { level: label };
},
log(object) {
const span = trace.getSpan(context.active());
if (!span) return { ...object };
const { spanId, traceId } = trace
.getSpan(context.active())
?.spanContext();
return { ...object, spanId, traceId };
},
},
transport:
process.env.NODE_ENV === "local"
? {
target: "pino-pretty",
options: {
colorize: true,
levelFirst: true,
translateTime: true,
},
}
: null,
};
export const logger: Logger = Pino(loggerOptions);