Вывод журнала в файл в Node.js

Чтобы записать выходные данные приложения Node.js в файл, вы можете использовать несколько методов. Вот некоторые из наиболее распространенных подходов:

  1. Использование встроенного модуля console:

    const fs = require('fs');
    const path = require('path');
    const logFilePath = path.join(__dirname, 'logs.txt');
    // Redirect console output to a file
    const logStream = fs.createWriteStream(logFilePath, { flags: 'a' });
    console.log = (message) => {
     logStream.write(`${new Date().toISOString()} - ${message}\n`);
    };
    // Usage example
    console.log('This will be logged to the file.');
  2. Использование библиотеки журналирования, такой как Winston:

    const winston = require('winston');
    const logger = winston.createLogger({
     transports: [
       new winston.transports.File({ filename: 'logs.txt' })
     ]
    });
    // Usage example
    logger.info('This will be logged to the file.');
  3. Использование комбинации модуля fsи пользовательских функций журнала:

    const fs = require('fs');
    const path = require('path');
    const logFilePath = path.join(__dirname, 'logs.txt');
    function logToFile(message) {
     fs.appendFile(logFilePath, `${new Date().toISOString()} - ${message}\n`, (err) => {
       if (err) {
         console.error('Error writing to log file:', err);
       }
     });
    }
    // Usage example
    logToFile('This will be logged to the file.');

Не забудьте заменить 'logs.txt'на желаемый путь и имя файла журнала.