Refactor la configuración del logger para cargar variables de entorno desde .env y mejorar la detección de compilación
This commit is contained in:
@@ -1,22 +1,48 @@
|
|||||||
import pino from 'pino';
|
import fs from "fs";
|
||||||
|
import path from "path";
|
||||||
|
import dotenv from "dotenv";
|
||||||
|
import pino from "pino";
|
||||||
|
|
||||||
|
// 🩹 Extender el tipo global de process para evitar error de TS
|
||||||
|
declare global {
|
||||||
|
namespace NodeJS {
|
||||||
|
interface Process {
|
||||||
|
pkg?: any;
|
||||||
|
BUN_COMPILED?: boolean;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔹 Cargar .env manualmente si existe
|
||||||
|
const envPath = path.resolve(process.cwd(), ".env");
|
||||||
|
if (fs.existsSync(envPath)) {
|
||||||
|
dotenv.config({ path: envPath });
|
||||||
|
console.log("✅ .env cargado desde", envPath);
|
||||||
|
} else {
|
||||||
|
console.warn("⚠️ No se encontró archivo .env, usando variables del entorno");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔹 Detectar si está compilado con Bun o pkg
|
||||||
|
const isCompiled = !!process.pkg || !!process.env.BUN_COMPILED;
|
||||||
|
|
||||||
|
// 🔹 Configurar transporte solo si NO estamos en producción y NO es compilado
|
||||||
|
const usePretty = process.env.NODE_ENV !== "production" && !isCompiled;
|
||||||
|
|
||||||
// Configurar pino con opciones optimizadas para producción
|
|
||||||
export const logger = pino({
|
export const logger = pino({
|
||||||
level: process.env.LOG_LEVEL || 'info',
|
level: process.env.LOG_LEVEL || "info",
|
||||||
transport: process.env.NODE_ENV !== 'production' ? {
|
transport: usePretty
|
||||||
target: 'pino-pretty',
|
? {
|
||||||
|
target: "pino-pretty",
|
||||||
options: {
|
options: {
|
||||||
colorize: true,
|
colorize: true,
|
||||||
translateTime: 'HH:MM:ss Z',
|
translateTime: "HH:MM:ss Z",
|
||||||
ignore: 'pid,hostname',
|
ignore: "pid,hostname",
|
||||||
}
|
|
||||||
} : undefined,
|
|
||||||
formatters: {
|
|
||||||
level: (label) => {
|
|
||||||
return { level: label };
|
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
|
: undefined,
|
||||||
|
formatters: {
|
||||||
|
level: (label) => ({ level: label }),
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default logger;
|
export default logger;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user