2 Вопрос: PM2 - Как я могу удалить идентификатор из имени файла журнала

вопрос создан в Thu, May 2, 2019 12:00 AM

Я пытаюсь удалить идентификатор службы из имени файла журнала.

Пример: р>

Мой ecosystem.config.js выглядит следующим образом:

module.exports = {
  apps : [
    {
        name: "My Service",
        script: "./app.js",
        watch: true,
        max_memory_restart: "150M",
        error: "/var/log/pm2/my-service.log",
        out: "/var/log/pm2/my-service.log",
        max_restarts: 10
    }
  ]
}

Затем я ожидаю файл журнала с именем: /var/log/pm2/my-service.log.

Но это то, что он генерирует: /var/log/pm2/my-service-4.log.

Я использую версию pm2 3.5.0, я только что обновил ее с версии 2.10.4

Версия узла: v8.16.0

ОБНОВЛЕНИЕ 1:

Я также пытался использовать другие параметры, такие как merge_logs, вот пример этой версии:

module.exports = {
  apps : [
    {
        name: "My Service",
        script: "./app.js",
        watch: true,
        max_memory_restart: "150M",
        error: "/var/log/pm2/my-service.log",
        out: "/var/log/pm2/my-service.log",
        max_restarts: 10,
        merge_logs: true
    }
  ]
}

ОБНОВЛЕНИЕ 2:

Кажется, что pm2 полностью игнорирует то, что я установил в опциях error и output. Я попытался изменить эти параметры на error_file и out_file, а затем перезагрузить журналы с pm2 reloadLogs, но не сработал.

    
4
2 ответа                              2                         

Похоже, вы используете суффикс журнала для своего приложения. См. документацию по pm2 здесь .

  

Вы можете отключить автоматические суффиксы идентификаторов в журналах (например, app-name-ID.log), пропустив включение опции merge_logs: true

Итак, ваш файл env должен выглядеть так:

module.exports = {
  apps : [
    {
        name: "My Service",
        script: "./app.js",
        watch: true,
        max_memory_restart: "150M",
        error: "/var/log/pm2/my-service.log",
        out: "/var/log/pm2/my-service.log",
        max_restarts: 10,
        merge_logs: true
    }
  ]
}
    
1
2019-05-02 20: 34: 40Z
  1. Я уже пробовал это.
    2019-05-03 08: 15: 16Z
  2. ОК. Пожалуйста, обновите ваш вопрос файлом env, который вы пробовали. Это именно та настройка, которую я использую, и она работает. Возможно, структура вашего файла pm2.env неверна.
    2019-05-03 15: 50: 50Z

Я нашел решение для этого.

Похоже, что pm2 кэширует файл экосистемы и полностью игнорирует изменения в файле после его запуска.

Чтобы заставить pm2 перезагрузить всю конфигурацию снова, вам нужно удалить все службы и запустить их снова.

Вот что я сделал:

pm2 delete all
pm2 startOrRestart ecosystem.config.js

После этого он перезагрузил конфигурацию и начал записывать правильные файлы.

    
0
2019-05-15 15: 14: 32Z
источник размещен Вот