PM2 - Как я могу удалить идентификатор из имени файла журнала - PullRequest
4 голосов
/ 02 мая 2019

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

Пример:

Мой 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, но не сработало.

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Похоже, вы используете суффикс журнала для своего приложения. См. Документацию 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
    }
  ]
}
0 голосов
/ 15 мая 2019

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

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

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

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

pm2 delete all
pm2 startOrRestart ecosystem.config.js

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

...