* add pino dependecy and types

* implements Logger abstracting Pino
This commit is contained in:
albert
2025-07-28 13:44:45 +02:00
parent 1664955ec2
commit 20c53339de
3 changed files with 179 additions and 4 deletions

View File

@ -1,2 +1,44 @@
// Aquí "abstraeré" los logs, para evitar el uso de console.log (por seguridad, y por si queremos extraerlo a algun servicio)
// En mi dia usaba winston, llegué a usar pino que era más ligero, supongo que usaré pino, ya veremos.
import pino from 'pino';
import { config } from '../config/config.js';
// Create the logger instance with Pino
const logger = pino({
level: config.nodeEnv === 'production' ? 'info' : 'debug',
transport: config.nodeEnv === 'production' ? undefined : {
target: 'pino-pretty',
options: {
colorize: true,
translateTime: 'SYS:standard',
ignore: 'pid,hostname'
}
},
// Production configuration
...(config.nodeEnv === 'production' && {
formatters: {
level: (label) => {
return { level: label };
}
}
})
});
export const Logger = {
error: (message: string, meta?: any) => {
logger.error(message, meta);
},
warn: (message: string, meta?: any) => {
logger.warn(message, meta);
},
info: (message: string, meta?: any) => {
logger.info(message, meta);
},
debug: (message: string, meta?: any) => {
logger.debug(message, meta);
}
};
export default Logger;