Есть ли способ добавить отметки времени в журналы ошибок в .pm2/logs?
Я заметил, что команда pm2 logs
показывает агрегированные журналы с отметками времени, но просматривает файлы журналов - есть только сообщения и стеки, без дат.
Есть ли способ добавить отметки времени в журналы ошибок в .pm2/logs?
Я заметил, что команда pm2 logs
показывает агрегированные журналы с отметками времени, но просматривает файлы журналов - есть только сообщения и стеки, без дат.
В соответствии с этой проблемой и этот коммит вы можете использовать:
pm2 start app.js --log-date-format 'DD-MM HH:mm:ss.SSS'
где 'DD-MM HH:mm:ss.SSS'
- любой допустимый формат momentjs
.
Согласно справке командной строки (pm2 logs -h
) при запуске команды pm2 logs --timestamp
следует добавить метку времени в журналы. Однако это, похоже, не влияет на старые журналы! Видимо только новые журналы отображаются с отметкой времени.
Чтобы исправить эту проблему, передайте --log-date-format="YYYY-MM-DD HH:mm Z"
в pm2 в качестве параметра. Например:
pm2 start bin/www --log-date-format="YYYY-MM-DD HH:mm Z"
Мне нравится process.json для удобства запуска моего приложения, поэтому мой process.json содержит следующее:
{
"apps" : [
{
"name" : "app",
"script" : "bin/www",
"log_date_format" : "YYYY-MM-DD HH:mm Z"
}
]
}
затем я запускаю свое приложение, просто запустив:
pm2 start process.json
После этого я вижу, что timestamp показывается только при запуске: pm2 logs
Обратите внимание, что мне не нужно было указывать --timestamp, чтобы увидеть отметку времени.
app (out): 2016-08-04 13:46 +01:00: My log here
Хорошее чтение: http://pm2.keymetrics.io/docs/usage/log-management/
pm2 start app.js --log-date-format "YYYY-MM-DD HH:mm"
Я использую PM2, но мне не очень нравятся журналы. Вместо этого я использую bunyan, что дает массу гибкости при регистрации. Если вы npm установите его с помощью --global, вы также можете использовать его как средство просмотра в реальном времени:
Однако это не приведет к метке вашего вывода console.log. Но если вы конвертируете в log.info()
или любую другую функцию журнала Bunyan, вы получите хороший журнал.
Чтобы просмотреть живые записи pm2 с помощью bunyan, просто выполните его:
pm2 logs | bunyan
Чтобы использовать стандартную отформатированную метку времени:
pm2 start app.js --time
Или, если вы хотите добавить префикс журналов к пользовательской отформатированной метке времени:
pm2 start app.js --log-date-format <format>
Где <format>
- это формат отображения момента (например, YYYY-MM-DD HH:mm Z
).
И если ваше приложение уже запущено, вы можете использовать reload
для reload
с периодом простоя 0 секунд:
pm2 reload app.js --time
Или же
pm2 reload app.js --log-date-format <format>
Для process.yml следуйте приведенному ниже примеру формата. Это сработало для меня
apps:
- script : ./SampleApi/app.js
name : 'api-proxy-app'
instances: 2
exec_mode: cluster
watch : true
log_date_format : "YYYY-MM-DD HH:mm Z"
Пример журнала в формате DateTime:
2019-07-28 13:46 +06:00: channel created for cancel mandate--####################################
2019-07-28 13:46 +06:00: channel created for cancel mandate--####################################
2019-07-28 13:46 +06:00: channel created for exception scenario--####################################
2019-07-28 13:46 +06:00: channel created for create mandate--####################################
2019-07-28 13:46 +06:00: create channel initiated for cancel mandate--------------------->
2019-07-28 13:46 +06:00: create channel initiated for create mandate--------------------->
2019-07-28 13:46 +06:00: create channel initiated for update mandate--------------------->
Использование --log-date-format не помогло мне.