|
|
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Добрый день . Собственно интересует сама методология , ваш подход , как вы определяете уровни логирования , в какой момент и как пишите в лог итд ... Насколько детально ваш код покрыт логами (на 100 строк бизнес кода) итд ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 08:59 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1, Сильно зависит от нагрузки. Если приложение рассчитано на 50+ запросов в секунду, особо не пологгируешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 09:32 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1Собственно интересует сама методология , ваш подход , как вы определяете уровни логирования , в какой момент и как пишите в лог итд ... Насколько детально ваш код покрыт логами (на 100 строк бизнес кода) итд ... TRACE - уровень на котором выводится полная информация о данных. Дампы запросов, объектов, XML и т.п. DEBUG - уровень анализа - покрывает ВСЕ ветвления кода, чтобы по логу было видно весь сценарий по которому работала программа. INFO - менее детальный аналог DEBUG - покрывает наиболее критичные изменения состояния системы. WARN - подозрительные ситуации, которые не критичны для отработки сценария, но которые не ожидаются при штатной работе системы. ERROR - все сбои FATAL - критичные сбои при которых дальнейшая работа системы не возможна. В принципе особой пользы в этом уровне нет, можно и в ERROR логировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 10:01 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
scfСильно зависит от нагрузки. Если приложение рассчитано на 50+ запросов в секунду, особо не пологгируешь. Ерунда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 10:01 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Вы это, мысль раскройте пошире. 50 запросов в секунду по 1 кб на запрос - это 4 гига логов в сутки. А нагрузки бывают и выше, а системы бывают и микросервисные, и каждый микросервис должен что-то логгировать. Так что логгирование приходится вести очень аккуратно. У вас какой-то другой опыт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 10:08 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
scfВы это, мысль раскройте пошире. Взаимно. scf50 запросов в секунду по 1 кб на запрос - это 4 гига логов в сутки. У вас фиксированое количество логов на каждый запрос? scfА нагрузки бывают и выше, а системы бывают и микросервисные, и каждый микросервис должен что-то логгировать. Так что логгирование приходится вести очень аккуратно. У вас какой-то другой опыт? Бывает. А бывает и кластер игрового сервера с тысячами клиентов онлайн. И логируется не только работа сервера, но и GC лог включен. Ну, и 4 гига это же фигня в наше время. Недельный лог вполне можно хранить. А если ещё и про компресиию вспомнить, то и вообще за месяц можно собрать данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 10:14 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Вообще логгирование - это тема обширная и почему-то плохо освещенная в литературе. Размер на запрос, конечно, не фиксированный, но границу снизу и сверху почти всегда можно назвать. С хранением все немного сложнее, т.к. логи не хранятся мертвым грузом. Они парсятся, индексируются и складываются в централизованное хранилище, их анализирует алертинг, по ним строятся всякие-разные графики. У нас используется такая классификация логов: - трассировка (по умолчанию выключена) - отладочные (включены только local/dev) - сетевые (логгирование запроса и ответа) - аудит (логгирование действий пользователя, имеющих смысл для аудита) - инфо (большая часть их не относится к индивидуальным запросам, скорее они обозначают изменение состояние приложения - т.е. запуск и какие-то перенастройки) - неинтересные/ожидаемые ошибки (ошибки валидации входных данных, некоторые сетевые ошибки) - т.е. формально ошибки, но они никому не интересны, разве что в виде статистики - внезапные ошибки (типичный пример - NPE) - ошибки, требующие внимания системного администратора - ошибки, требующие немедленного внимания системного администратора Уровни логгирования тут важны постольку-поскольку - главное, чтобы нужные категории логов было удобно фильтровать по уровню логгирования + чтобы парсер мог уверенно различать разные типы логов. Вообще, я повторюсь, тут можно на целую статью материала накатать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 10:26 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Наиболее встречающийся вариант: 1.При создании класса и на начальном этапе все прямо правильно логгер даже заинжектен, все как надо. 2.В процессе разработки/отладки добавляется System.out.println() 3.Вроде бы отлажено и сделано, ну надо логи добавить - такыются везде info "на отвали". 4.Вроде как-то работает криво, в лог пишется какая-то каша, обычно лог открывают далее Ctrl+F Exception. 5.Если размер лога покажется большим, его тупо удаляют. Вот как-то так))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 10:48 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
no56892такыются везде info "на отвали". жизненно )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 10:58 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAtum1Собственно интересует сама методология , ваш подход , как вы определяете уровни логирования , в какой момент и как пишите в лог итд ... Насколько детально ваш код покрыт логами (на 100 строк бизнес кода) итд ... TRACE - уровень на котором выводится полная информация о данных. Дампы запросов, объектов, XML и т.п. DEBUG - уровень анализа - покрывает ВСЕ ветвления кода, чтобы по логу было видно весь сценарий по которому работала программа. INFO - менее детальный аналог DEBUG - покрывает наиболее критичные изменения состояния системы. WARN - подозрительные ситуации, которые не критичны для отработки сценария, но которые не ожидаются при штатной работе системы. ERROR - все сбои FATAL - критичные сбои при которых дальнейшая работа системы не возможна. В принципе особой пользы в этом уровне нет, можно и в ERROR логировать. Это я понимаю . Вопрос немного о другом - как вы определите в своем коде нужна в этой строке строка с логгером и какого уровня. Не после каждой же строки писать вывод в лог? Если ли какой-то документ разработанный внутри вашей команды программистов - как покрывать код логами . чтобы открыв люобй файл с кодом вы увидели достаточно ли там логов или нет ... к тому же логгеры в коде - достаточно мусорный код получается ?! можно и через аспекты все логировать . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 13:42 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
scfBlazkowicz, Вы это, мысль раскройте пошире. 50 запросов в секунду по 1 кб на запрос - это 4 гига логов в сутки. А нагрузки бывают и выше, а системы бывают и микросервисные, и каждый микросервис должен что-то логгировать. Так что логгирование приходится вести очень аккуратно. У вас какой-то другой опыт? вот тут они логируют любое движение курсора - потому хотят понять по нему о чем думал пользователь ... https://habrahabr.ru/company/badoo/blog/280606/ ИМХО это перегиб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 13:45 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1вот тут они логируют любое движение курсора - потому хотят понять по нему о чем думал пользователь ... https://habrahabr.ru/company/badoo/blog/280606/ ИМХО это перегиб. Статью не читал. Но по поводу перегиба - смотря для чего. Если on-line игры, то могут пытаться ботов вычислять. Поиск ботов, я так понимаю, одна из основных задач в on-line игровом бизнесе, дабы бото-воды монитизацию сжирают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 13:57 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1, на такой вопрос тебе никто не ответит. Увы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 14:37 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1, как вариант: - если программист хороший, то он вслепую, без логов что объект создан....пишет код. И заполняет только Error...try А дальше - требования компании. Не знаю, скрин кто выложит тут или нет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 14:41 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Petro123, Это да ... В одном из проектов : Я логи убрал в Аспекты - получилось всё завернуто в логи - каждый метод и каждый параметр таким образом ... уровень так же проставляется - код чистый итд ... если NPE - или ошибка в критической секции - то сразу , но асинхронно письмо на саппорт что там то и там то ошибка и стек трейс всем разработчикам полная инфа в письме + сразу в редмайне таск открывается . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 15:38 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1Petro123, Это да ... В одном из проектов : Я логи убрал в Аспекты - получилось всё завернуто в логи - каждый метод и каждый параметр таким образом ... уровень так же проставляется - код чистый итд ... если NPE - или ошибка в критической секции - то сразу , но асинхронно письмо на саппорт что там то и там то ошибка и стек трейс всем разработчикам полная инфа в письме + сразу в редмайне таск открывается . Потом тригерится событие на автофиксинг, заливается в репозиторий оттуда континус интегрэйшн прогоняет тесты и выкладывает на прод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 15:46 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
no56892, + ДА есть дженкинс который все это собирает - прогоняя 100500 тестов , если все ок - то пакует все в докер (docker) и выкладывает в Хаб откуда это берут и разливают по серверам ... но это история не про логирование . Мне интересно методология логирования :) кроме Petro123вот тебе привели - жизнь )) 19610928 в инете нет достойных статей - все на интуиции и на совести разработчика ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 16:26 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
scfAtum1, Сильно зависит от нагрузки. Если приложение рассчитано на 50+ запросов в секунду, особо не пологгируешь. как то раз мы обнаружили, что нас досят, как раз потому что место кончилось - все логами забилось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 16:33 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
авторСильно зависит от нагрузки. Если приложение рассчитано на 50+ запросов в секунду, особо не пологгируешь. Async logging на другой комп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 16:44 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
no56892, другой комп тоже не резиновый. А так да, в приличном обществе принято логгировать на отдельный примонтированный раздел, чтобы ОС не страдала от нехватки места если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 16:53 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1Собственно интересует сама методология , ваш подход , как вы определяете уровни логирования , в какой момент и как пишите в лог итд ... Насколько детально ваш код покрыт логами (на 100 строк бизнес кода) итд ... Всё это - вопрос вкуса. Уровни- на тестовом сервере и локально включен debug, на продакшн- info. Обычно влючать весь trace опасно- завалит нафиг, надо включать для конкретных потоков. На error логи обычно вешается что-нибудь вроде sentry, которая позволяет не проморгать проблемы. Плюс в zabbix. На интеграционных тестах это повод считать тест заваленным. Вот что делать с warn не очень понятно. На проде никто читать это не будет, на тесте и локально- не увидишь. Тут, честно, я в замешательстые. Разве что так же в sentry пихать (и НЕ пихать в zabbix). В дойч-банке (по крайней мере в high-load части) есть традиция писать только info и debug. Я работал в группе, где такое внедрили. Неудобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 16:57 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Atum1к тому же логгеры в коде - достаточно мусорный код получается ?! можно и через аспекты все логировать .Вы неправильно подходите к протоколированию. Есть две задачи - аудит и собственно протоколирование. Аудит не знаю, а протоколирование это замена отладчика, т.к. рано или поздно возникнет ситуация, когда ничего, кроме лога у вас просто не будет, а "на тесте" или/и "под отладчиком" проблема не воспроизведётся. Соответственно, протоколировать надо так, чтобы читая лог вы понимали что происходило в системе. Как минимум, протоколироваться должны все сомнительные места и так, чтобы расхождение реального поведения с ожидаемым вызывало запись нужного вам уровня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 18:29 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Alexey TominВот что делать с warn не очень понятноНа самом деле, ещё notice не хватает На проде никто читать это не будетЕсли всякую фигню пихать - да, поэтому в предупреждениях должна быть информация к размышлению для админа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 18:31 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovAtum1к тому же логгеры в коде - достаточно мусорный код получается ?! можно и через аспекты все логировать .Вы неправильно подходите к протоколированию. Есть две задачи - аудит и собственно протоколирование. Аудит не знаю, а протоколирование это замена отладчика, т.к. рано или поздно возникнет ситуация, когда ничего, кроме лога у вас просто не будет, а "на тесте" или/и "под отладчиком" проблема не воспроизведётся. Соответственно, протоколировать надо так, чтобы читая лог вы понимали что происходило в системе. Как минимум, протоколироваться должны все сомнительные места и так, чтобы расхождение реального поведения с ожидаемым вызывало запись нужного вам уровня. +1 лучше и не скажешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 18:52 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39300881&tid=2123755]: |
0ms |
get settings: |
15ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 312ms |

| 0 / 0 |
