import {pino, type LogFn, type Logger} from "pino"; export let logLevel = "info"; const transport = pino.transport({ targets: [ { target: "pino-pretty", options: { colorize: true, singleLine: true, // customPrettifiers: { // time: (time) => `🕰 ${time}`, // }, destination: process.stdout.fd, }, }, { target: "./dbTransport.js", }, ], }); const log: Logger = pino( { level: process.env.LOG_LEVEL || logLevel, // formatters: { // level: (label) => { // return {level: label.toUpperCase()}; // }, // }, //customLevels: {death: 70}, // removes data from the logs that we dont want to be shown :D redact: {paths: ["email", "password"], remove: true}, }, transport ); export const createLog = ( level: "info" | "fatal" | "error" | "warn" | "debug" | "trace", username: string, service: string, message: string ) => { if (level in log) { log[level]({username, service}, message); } else { log.warn({username, service}, `Invalid log level '${level}', falling back to warn: ${message}`); } };