|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Т.е. хотите - делайте 1 файл на поток, хотите отдельные файлы по уровням, Бобина всё это отлично поддерживает. Никаких умозрительных ограничений и незадокументированных архитектурных проблем нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2019, 23:04 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Пока я отвечу более детально, прошу всех скачать Бобину (через Maven, Gradle, jar - как удобно) и просто начать ей пользоваться. Настроить по своим предпочтениям. И наслаждаться свободой от ига logback и прочих log4j. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2019, 23:06 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Релиз 2.0.5 - он с учётом фидбека из этой темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2019, 23:10 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasЯ завтра с работы подробно отвечу на комментарии. Касательно ELK - там невозможно вручную логи смотреть, поэтому отдельные файлы на каждый лог - дают выигрыш в производительности - за счёт отсутствия io congestion. Если нет ELK, в случаях с пакетными приложениями, ETL, индустриальными приложениями с фиксированными потоками - там возможность отдельных лог файлов это супер фича. Когда требуется вручную разбирать лог файлы. И в процессе отладки приложения. А что касательно Elastic-Kibana? Речь вообще про него не идёт. Или вы делаете узкоспециализированное решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2019, 23:29 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasПока я отвечу более детально, прошу всех скачать Бобину (через Maven, Gradle, jar - как удобно) и просто начать ей пользоваться. Настроить по своим предпочтениям. И наслаждаться свободой от ига logback и прочих log4j. А ты хитрец. Хочешь бесплатную бригаду тестировщиков? Ты с Панфиловым расчитался? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2019, 23:34 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytondakeirasПока я отвечу более детально, прошу всех скачать Бобину (через Maven, Gradle, jar - как удобно) и просто начать ей пользоваться. Настроить по своим предпочтениям. И наслаждаться свободой от ига logback и прочих log4j. А ты хитрец. Хочешь бесплатную бригаду тестировщиков? Ты с Панфиловым расчитался? конечно! Ща как затестирую за ваш счет да как раскручусь, донат польётся рекой. Кстати, правительсто оплачивает мне 10 опер сорс проектов, но я выкладываю только 5, остальные сам использую. Как с тем армянином (который к сожалению умер) и бесплатным хлебом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2019, 23:40 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasМожно пример как это настраивается в Log4j без изменения пользовательского кода?Сейчас уже сложно найти ссылку на общедоступное руководство по log4j 1.2, поэтому я дал ссылку на документацию, где есть говорящее "andWatch". XML-конфигурация регулярно проверяется на обновление (мониторится дата-время xml-файла и, возможно, его размер). Если изменение обнаружено - запускается процесс переконфигурации. Практически, когда мне потребовалось написать XML-конфигурацию log4j, то, лично я, сделать этого не смог - не разобрался с DTD. Зато, после недолгих поисков, нашёл онлайновый конвертор, скормил ему простую конфигурацию из файла свойств и получил шаблон, который потом менял под собственные нужды. Всё это проделывалось лет шесть назад и прекрасно работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 06:36 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasПросто с точки зрения здравого смысла, если у вас есть 500 потоков - писать лог в единый файл - это бред, наркомания укоренившаяся с годами.Нет задачи "писать лог в единый файл" и наркомания тут совершенно не в тему. Если анализ проблемы требует анализ данных от пятисот потоков - так тому и быть. И вот в этом случае собирать и синхронизировать данные из пятисот логов - проще сразу убиться, предварительно застрелив автора этой гениальной задумки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 06:47 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasАндрей нашёл 1 явный баг (minor) У вас какое-то определение minor/major несколько странное... Вы внимательно читали выхлоп от 21941782 ? Там mm, dd, yyyy и пр. не полностью замещаются, а перемешиваются, т.е. на "границах" разница получается на самом деле не микросекунды, а секунды, минуты, часы, месяцы, годы - если такой лог куда-то грузить для дальнейшего анализа, то в нем сообщения будут банально теряться. dakeiras1 потенциальный баг с max open files exceededт.е. до конца раскрутить вы замечание не смогли, а вот Lelouch смог 21943227 : Lelouch6) меня терзают смутные сомнения о FileDestination - КМК каждый поток может создать свой FileWriter для каждого файла и попробовать что-то туда записать. Что при этом будет с содержимым файла? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 07:27 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Вроде стандартная фича логеров, писать в один файл, но после времени идёт id потока. Удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 08:15 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeiras, Хотели тесты - получайте https://github.com/oleg-zinovev/bobbin-test-suite 1) TestIOExceptionOnLog - показывает, что в случае ошибки IO полезная работа (в данном случае установка флага work) не выполняется. Для демонстрации этого кейса на Windows можно указать несуществующий диск (вместо /some/missing/root/directory/on/my/mac). На *nix достаточно запустить от пользователя, который не имеет права на запись в /. 2) TestSameName - показывает ошибки при одинаковом имени файла. На Windows возможно тест завершиться с ошибкой на первых 3х ассретах. Так как *nix позволяет писать в один файл из нескольких процессов/потоков, для демонстрации проблемы пришлось сгенерировать строку лога, превышающий размеры буфера записи в FileWriter (возможно, есть меньший размер буфера, при котором начнется перемешивание, связанный с работой файловой системы, но тут я хз). При этом на *nix ошибок записи нет, но содержимое логов перемешивается. Последний assert проверяет именно это. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 09:11 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Basil A. SidorovdakeirasПросто с точки зрения здравого смысла, если у вас есть 500 потоков - писать лог в единый файл - это бред, наркомания укоренившаяся с годами.Нет задачи "писать лог в единый файл" и наркомания тут совершенно не в тему. Если анализ проблемы требует анализ данных от пятисот потоков - так тому и быть. И вот в этом случае собирать и синхронизировать данные из пятисот логов - проще сразу убиться, предварительно застрелив автора этой гениальной задумки. Логгер «Бобина» позволяет удобно настраивать отображения вывода данных логирования в разных проекциях, в зависимости от необходимости: - По потокам - По уровню сообщения (error, debug, etc) - По классам - По MDC - например отслеживать работу по конкретному пользователю или по конкретному transaction id Эти критерии можно группировать и комбинировать как угодно, например по группам потоков, пакетам классов - ограничений нет никаких. 1 сообщение может выводится во множество файлов одновременно. Всё ещё хочется застрелить за такую идею? Плохая идея? По остальным комментариям - отвечу с работы, заранее большое спасибо за тесты и фидбек. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:51 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasВсё ещё хочется застрелить за такую идею? Плохая идея? За идею вас тут никто не расстреливают, просто никто кроме вас не видит преимуществ в этой идеи. А вот реализация идеи хромает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 12:57 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
LelouchdakeirasВсё ещё хочется застрелить за такую идею? Плохая идея? За идею вас тут никто не расстреливают, просто никто кроме вас не видит преимуществ в этой идеи. А вот реализация идеи хромает. Человек выше написал: авторзастрелив автора этой гениальной задумки Мне лично хочется самому застрелиться от конфигов logback и log4jX. Сейчас начну смотреть тесты и комменты. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 13:55 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Lelouch, Огромное спасибо, что потратили время и сделали тесты. Сейчас буду смотреть. Респект. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 13:58 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasLelouchпропущено... За идею вас тут никто не расстреливают, просто никто кроме вас не видит преимуществ в этой идеи. А вот реализация идеи хромает. Человек выше написал: авторзастрелив автора этой гениальной задумки Мне лично хочется самому застрелиться от конфигов logback и log4jX. Сейчас начну смотреть тесты и комменты. Ты ставишь нас в глупое положение. Ведь мы не видим те ужасные конфиги на которые ты смотришь сейчас. Сделай милость. Приведи конфиг для одинаковой конфигурации для Робин-Катушка-Толтсяк и Лог4Джей и Логбэк. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:04 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytondakeirasпропущено... Человек выше написал: пропущено... Мне лично хочется самому застрелиться от конфигов logback и log4jX. Сейчас начну смотреть тесты и комменты. Ты ставишь нас в глупое положение. Ведь мы не видим те ужасные конфиги на которые ты смотришь сейчас. Сделай милость. Приведи конфиг для одинаковой конфигурации для Робин-Катушка-Толтсяк и Лог4Джей и Логбэк. Вот несколько моментов описано: https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/1---Introduction#problems Это если чуть конкретнее. Но в общем случае конфиги Бобины просто невоспроизводимы в других логгерах из-за функциональных ограничений SiftingAppender - либо огромные по размеру (отдельные блоки НА КАЖДЫЙ КЛАСС либо на весь пакет целиком) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:30 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeiras, ты пишешь Existing logging solutions provide only partial support for scripting in configuration. Поясни эту фразу. Что значит scripting in configuration? Где partial? И где может быть full? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:34 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Lelouch, Посмотрел 1й тест: TestIOExceptionOnLog Сделал PR: https://github.com/oleg-zinovev/bobbin-test-suite/pull/1 Бобина есть в JCenter, не обязательно ещё её собвстенный репозиторий подключать, это описано в инструкции: https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/3---Usage#add-maven-dependency Так же тест не воспроизводился под виндой из-за UAC Virtualization. Я чуть подправил. Теперь касательно сути самого теста: это осмысленное поведение. Я считаю, что выполнение не должно продолжаться при отказе системы логирования. Принцип такой: чем раньше упадёт - тем лучше. А шанс того что упадёт само приложение чуть позже, если упал логгер - есть. Это очередная "гениальная" фича в Logback - супрессить ошибки в логгере. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:53 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytondakeiras, ты пишешь Existing logging solutions provide only partial support for scripting in configuration. Поясни эту фразу. Что значит scripting in configuration? Где partial? И где может быть full? В Бобине full support скриптинга в конфиге, все поля это скрипты: - levels - classes - fileName - format и пр. Partial из документации к Бобине: Note: Logback supports Groovy Script filter - but it is applicable only on specific appender configuration, not on Logger configuration. Т.е. только фильтр и только на уровне аппендеров... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:55 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Lelouch, сейчас посмотрю второй тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:56 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Mayton, Вот ещё про Full support: https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/1---Introduction#full-support-for-scripting-in-logger-run-time-configuration-files ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 14:58 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasmaytondakeiras, ты пишешь пропущено... Поясни эту фразу. Что значит scripting in configuration? Где partial? И где может быть full? В Бобине full support скриптинга в конфиге, все поля это скрипты: - levels - classes - fileName - format и пр. Partial из документации к Бобине: Note: Logback supports Groovy Script filter - but it is applicable only on specific appender configuration, not on Logger configuration. Т.е. только фильтр и только на уровне аппендеров... Но ты понимаешь что есть семантическое различие между конфигом и кодом? В коде находят ошибки другого рода. Код сложнее тестировать. Код вообще в общем случае корректен недоказуемо. Конфиг - всегда корректен если просто прошел валидацию. Ты, беря возможности Groovy перенёс часть логики в конфиги и выставил это как преимущество. Но на самом деле это не разу не приемущество. Это - недостаток. Это - ненадёжность системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 15:02 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytondakeirasпропущено... В Бобине full support скриптинга в конфиге, все поля это скрипты: - levels - classes - fileName - format и пр. Partial из документации к Бобине: пропущено... Т.е. только фильтр и только на уровне аппендеров... Но ты понимаешь что есть семантическое различие между конфигом и кодом? В коде находят ошибки другого рода. Код сложнее тестировать. Код вообще в общем случае корректен недоказуемо. Конфиг - всегда корректен если просто прошел валидацию. Ты, беря возможности Groovy перенёс часть логики в конфиги и выставил это как преимущество. Но на самом деле это не разу не приемущество. Это - недостаток. Это - ненадёжность системы. Вот. Прямо в точку. Нет разницы между конфигом и кодом. Есть единая система - с изменениями на этапах: 1) Сборки\компиляции 2) Запуска (старта) работы\перезапуске 3) В Runtime Всё. То что в конфигах не должны быть скрипты - это миф, страшилка родом из 90х. Типа тормозит, небезопасно и пр. Это всё несостоятельно, и в результате приводит к декларативному программированию в конфигах ( https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/1---Introduction#declarative-programming-in-logger-configuration) а также к изобретению волшебных синтаксисов. А также типа пользователь не разберётся как настроить. Если дев опс не в состоянии осилить скрипт - он по определению не дев опс. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 15:13 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasТо что в конфигах не должны быть скрипты - это миф, страшилка родом из 90х. Типа тормозит, небезопасно и пр. Это всё несостоятельно, и в результате приводит к декларативному программированию в конфигах ( https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/1---Introduction#declarative-programming-in-logger-configuration) а также к изобретению волшебных синтаксисов. А также типа пользователь не разберётся как настроить. Если дев опс не в состоянии осилить скрипт - он по определению не дев опс. Капец какой-то. Вот ты Windows используешь. И тестишь на нем своего Толстого-Робина (отдельный вопрос почему ибо не энтерпрайзно. но потом спрошу) но хоть раз заглядывал в самое крупное хранилище настрек Windows. А именно в Windows-registry? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 15:27 |
|
|
start [/forum/topic.php?fid=59&msg=39846312&tid=2120876]: |
0ms |
get settings: |
29ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
460ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 918ms |
0 / 0 |