Quiero cómo iniciar sesión tanto en el archivo como en la consola. Este es mi fragmento de código:
Quiero que sea posible tanto grabar en consola como grabar en archivo. El siguiente código funciona, pero ¿hay alguna forma de hacer lo que acabo de mencionar?
var fs = require("fs"); var Logger = (exports.Logger = {}); var infoStream = fs.createWriteStream("logs/info.txt"); var errorStream = fs.createWriteStream("logs/error.txt"); var debugStream = fs.createWriteStream("logs/debug.txt"); Logger.info = function(msg) { var message = new Date().toISOString() + " : " + msg + "\n"; infoStream.write(message); }; Logger.debug = function(msg) { var message = new Date().toISOString() + " : " + msg + "\n"; debugStream.write(message); }; Logger.error = function(msg) { var message = new Date().toISOString() + " : " + msg + "\n"; errorStream.write(message); };Yo usaría Winston .
Puedes crear diferentes transportes con diferentes opciones.
export const Logger = winston.createLogger({ transports: [ new winston.transports.Console({ silent: process.env.NODE_ENV == "test" }), new winston.transports.File({ filename: "log/error.log" }), ], }) Por ejemplo, si crea un transporte para depuración/información/error y lo combina con la opción silent para que solo los archivos deseados vayan al registro, también hay una clave de configuración de level , pero filtrará los errores por debajo de ese nivel.