2016-06-22 4 views
1

Получил Бюньян журнал, вот пример записикак я могу фильтровать журнал bunyan на основе даты?

[2016-05-31T15:38:47.889Z] FATAL: jklajsd-utilities/23399 on aaa.bbb.ccc.com: 
    0: { 
     "code": "EADDRINUSE", 
     "errno": "EADDRINUSE", 
     "syscall": "listen", 
     "address": "0.0.0.0", 
     "port": 5566 
    } 

OK Я хочу, чтобы найти все записи после этого один:

bunyan /opt/aaa/.pm2/logs/cccc-out-15.log -c 'this.date >= new Date("2016-05-31T15:38:47.889Z")' 

Нет результатов. Пробовал также this.time. Bunyan docs говорят, что time - это правильное поле, но оно не работает. new Date("2016-05-31T15:38:47.889Z")' действует:

> new Date("2016-05-31T15:58:50.475Z") 
Tue May 31 2016 08:58:50 GMT-0700 (PDT) 

фильтрация Журнал безусловно работает:

$ bunyan /opt/aaa/.pm2/logs/cccc-out-15.log -c 'this.level === DEBUG ' |wc -l 
102455 

$ bunyan /opt/aaa/.pm2/logs/cccc-out-15.log -c 'this.level === FATAL '|wc -l 
1679 

Изменение год к 2015 году ничего не делать.

Так что я делаю неправильно с фильтрацией даты?

ответ

1

Ответ, кажется, процедить перед вызовом Буньяна:

cat /opt/xyz/.pm2/logs/whiskey-tango-out-15.log | grep "2016-10-11" | bunyan -o short

Который производит:

[2016-10-11T22:33:08.836Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 3 
[2016-10-11T22:33:08.837Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 2 
[2016-10-11T22:33:08.837Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 1 
[2016-10-11T22:33:08.838Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 3 
[2016-10-11T22:33:08.838Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 2 
[2016-10-11T22:33:08.838Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 2 
[2016-10-11T22:33:08.839Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 6 
[2016-10-11T22:33:08.839Z] WARN: whiskey-tango/8828 on [redacted]: Post failed, retrying, count: 3 

работает для меня. Похоже, что это должно быть выполнимо с командной строкой bunyan.

+0

Обратите внимание, что вы можете использовать: pm2 logs --json, чтобы напрямую войти в json-формат – Unitech

0

Время в JSON хранится как строка. Поэтому вам нужно преобразовать его перед сравнением.

bunyan /opt/aaa/.pm2/logs/cccc-out-15.log -c 'new Date(this.time) >= new Date("2016-05-31T15:38:47.889Z")' 
Смежные вопросы