Хороший подход для сохранения журналов Strapi в файл журнала?

#logging #strapi

Вопрос:

Я ищу простой подход для хранения журналов из моего приложения Strapi в файл, а не просто для их получения в консоли. Из документов я не смог найти хорошего способа добиться этого. У вас есть какие-нибудь предложения?

Ответ №1:

Ну, вы можете использовать любой из регистраторов по вашему выбору, таких как Winston, Простой регистратор узлов и т.д. Я лично использовал Простой регистратор узлов.

Итак, сначала создайте helpers папку в корне вашего strapi проекта. Затем создайте logger.js в нем файл. Добавьте следующий код в файл регистратора.

 // helpers/logger.js
const simpleLogger = require('simple-node-logger');

const logger = simpleLogger.createRollingFileLogger({
  logDirectory: 'logs/',
  fileNamePattern: 'strapi_log_<DATE>.log',
  dateFormat: 'YYYY.MM.DD',
});

module.exports = logger;

 

Затем создайте /logs папку в корне вашего проекта. И, наконец, потребуйте, чтобы регистратор в вашем controller service файле или и записывал сообщения в файлы журнала. Simple Node Logger мы будем ежедневно обрабатывать для вас процесс перемещения файлов журналов и имен файлов журналов.

 // api/restaurants/controller/index.js
const logger = require('../../../helpers/logger');

module.exports = {
  async someFindMethod(ctx){
    logger.info('Log information to log files');
    logger.error('Log error to log files');
    return 'Hello World!';
  }
}
 
Выход
 ## logs/strapi_log_2021.10.14.log
11:14:36.048 INFO  Log information to log files 
11:14:36.048 INFO  Log error to log files