saleor-apps-redis_apl/packages/shared/src/logger.ts

34 lines
775 B
TypeScript
Raw Normal View History

import pino from "pino";
const forbiddenProductionLevels = ["debug", "trace"];
const logLevel = process.env.APP_LOG_LEVEL ?? "silent";
if (process.env.NODE_ENV === "production" && forbiddenProductionLevels.includes(logLevel)) {
throw new Error(
`Production app can only log INFO or higher log level. "${logLevel}" is development only.`
);
process.exit(1);
}
/**
* TODO Set up log drain etc
*/
export const logger = pino({
level: logLevel,
redact: ["token", "apiKey"],
transport:
process.env.NODE_ENV === "development"
? {
target: "pino-pretty",
options: {
colorize: true,
},
}
: undefined,
});
export const createLogger = logger.child.bind(logger);
export type Logger = typeof logger;