|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
PetroNotC Sharpdakeiras, А теперь рядом минимальный с логами default. Зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 16:54 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasLelouch, Пофиксил перемешивание данных. Сейчас выложу версию. bobbinFile.getCanonicalPath().intern() - использование пула строк виртуальной машины не является хорошим решением - там и так их много (как минимум со слов Шипилева). А вы еще и вызываете попытку интернирования на каждую операцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 16:54 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Lelouch, Согласен. Откачу. Подумаю ещё как исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 16:54 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasPetroNotC Sharpdakeiras, А теперь рядом минимальный с логами default. Зачем? Для quck start должна быть некая дефолтная конфигурация чтоб любой разработчик мог легко интегрировать твоего Бобина в свой проект. В противном случае нужен шаблон или визард создания Бобино-подобного проекта а это сам понимаешь - чёртов гиморр. Причем дефолтная конфигурация должна быть компактна. Например как в log4j. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Что касается меня - так я ленив. Я-бы и это не писал. Но не писать совсем нельзя. Иначе аппеднеры не разберуться куда писать. В консоль или в файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 17:27 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytonтак я ленив.прям как я))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 17:38 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
PetroNotC Sharpmaytonтак я ленив.прям как я))) Третьим буду:) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 17:45 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytondakeirasпропущено... Зачем? Для quck start должна быть некая дефолтная конфигурация чтоб любой разработчик мог легко интегрировать твоего Бобина в свой проект. В противном случае нужен шаблон или визард создания Бобино-подобного проекта а это сам понимаешь - чёртов гиморр. Причем дефолтная конфигурация должна быть компактна. Например как в log4j. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Что касается меня - так я ленив. Я-бы и это не писал. Но не писать совсем нельзя. Иначе аппеднеры не разберуться куда писать. В консоль или в файл. Аа, сорян. Ты имеешь в виду стартовый конфиг Бобины. Рад что такой вопрос, значит немного заинтересовало. 1) Бобина работает в минимуме вообще без конфига - пишет в консоль всё подряд. 2) Вот пример минимального конфига с файлом: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
3) Вот пример конфига с указанием уровней, классов и разбиением на несколько файлов и указанием формата: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 17:48 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Данный rule избыточен по своей природе. Код: javascript 1.
На самом деле здесь достаточно одного параметра Код: java 1.
Все остальные - из него вытекают. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:01 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Это что? Код: java 1.
На каждый className будет создаваться отдельный файл? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:04 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytonЭто что? Код: java 1.
На каждый className будет создаваться отдельный файл? Я бы даже уточнил, что скрывается за className? Имя логгера (LoggerFactory.getLogger(SomeClass.class)) ? Или имя вызывающего класса? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:23 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytonДанный rule избыточен по своей природе. Код: javascript 1.
На самом деле здесь достаточно одного параметра Код: java 1.
Все остальные - из него вытекают. Не понял мысль. Что избыточно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:25 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytonЭто что? Код: java 1.
На каждый className будет создаваться отдельный файл? Да. Но так использовать не обязательно, это пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:26 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
LelouchmaytonЭто что? Код: java 1.
На каждый className будет создаваться отдельный файл? Я бы даже уточнил, что скрывается за className? Имя логгера (LoggerFactory.getLogger(SomeClass.class)) ? Или имя вызывающего класса? В терминологии Slf4j - имя логгера. В терминологии Бобины - имя класса: Конструктор Бобины: Код: java 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:30 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasmaytonДанный rule избыточен по своей природе. Код: javascript 1.
На самом деле здесь достаточно одного параметра Код: java 1.
Все остальные - из него вытекают. Не понял мысль. Что избыточно? Левел - это уровень. Как уровень воды в ведре. Он - один. У тебя не может быть одновременно пол-ведра и четверть ведра. Если логгирование грамотно спроектировано то детализация регулируется порогом чувствительности логгера. И не должно быть попытки логгировать WARN + TRACE при этом забить болт на промежуточные уровни. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:32 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasLelouchпропущено... Я бы даже уточнил, что скрывается за className? Имя логгера (LoggerFactory.getLogger(SomeClass.class)) ? Или имя вызывающего класса? В терминологии Slf4j - имя логгера. В терминологии Бобины - имя класса: Конструктор Бобины: Код: java 1. 2. 3.
Ты-же понимаешь что в контексте одного jvm процесса могут существовать несколько одинаковых className в разных класслоадерах. Ты-же понимаешь что для некоторых сущностей (анонимные классы) сложно определить className. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:34 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasLelouchпропущено... Я бы даже уточнил, что скрывается за className? Имя логгера (LoggerFactory.getLogger(SomeClass.class)) ? Или имя вызывающего класса? В терминологии Slf4j - имя логгера. В терминологии Бобины - имя класса: Конструктор Бобины: Код: java 1. 2. 3.
Почему не использовать общепринятую терминологию Slf4j? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 18:36 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Lelouchdakeirasпропущено... В терминологии Slf4j - имя логгера. В терминологии Бобины - имя класса: Конструктор Бобины: Код: java 1. 2. 3.
Почему не использовать общепринятую терминологию Slf4j? Я принимаю API (интерфейс) Slf4j (хотя и он под вопросом - см. Google Flogger). На этом я ограничился в основном. Это же касается и уровней логирования: авторЛевел - это уровень. Как уровень воды в ведре. Он - один. У тебя не может быть одновременно пол-ведра и четверть ведра. Если логгирование грамотно спроектировано то детализация регулируется порогом чувствительности логгера. И не должно быть попытки логгировать WARN + TRACE при этом забить болт на промежуточные уровни. Это ущербная философия log4j. Один человек сделал (автор), теперь все повторяют за ним. В Бобине всё иначе. Вот документация: https://github.com/INFINITE-TECHNOLOGY/BOBBIN/wiki/2---Key-Features#events Events In Object-oriented terms, existing logging frameworks consider log messages as events belonging to the same hierarchy: - Trace - Debug extends Trace - Info extends Debug - Warning extends Info - Error extends Warning This happens due to comparable nature of conventional Log Levels: e.g. Trace < Debug < Info < Warning < Error. This is a traditional paradigm which is so old that people just take it is as something granted and immutable. We change this paradigm. Bobbin considers log messages as separate independent events with different types (as per their level). With Bobbin it is possible to configure enabled logger levels in a granular way without filter, using array: Код: javascript 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:02 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytondakeirasпропущено... В терминологии Slf4j - имя логгера. В терминологии Бобины - имя класса: Конструктор Бобины: Код: java 1. 2. 3.
Ты-же понимаешь что в контексте одного jvm процесса могут существовать несколько одинаковых className в разных класслоадерах. Ты-же понимаешь что для некоторых сущностей (анонимные классы) сложно определить className. В 99% случаев это class name. И нет смысла его по другому называть из-за 1% случаев. Это контр-интуитивно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:06 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Нет ни одной, ни малейшей причины считать что например error это подмножество debug, как это делается во всех остальных логгеров. Это ярчайшая наркомания, от которой волосы дыбом встают в 2019 году. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:10 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
Lelouch, Пофиксил смешение данных, 2.0.7. Ещё раз огромное спасибо. Сразу видно - человек мега мозг Java. Сходу такое увидеть. Респект нереальный. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:17 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasLelouch, Пофиксил смешение данных, 2.0.7. Ещё раз огромное спасибо. Сразу видно - человек мега мозг Java. Сходу такое увидеть. Респект нереальный. Поправочка, 2.0.8... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:31 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeirasmaytonпропущено... Ты-же понимаешь что в контексте одного jvm процесса могут существовать несколько одинаковых className в разных класслоадерах. Ты-же понимаешь что для некоторых сущностей (анонимные классы) сложно определить className. В 99% случаев это class name. И нет смысла его по другому называть из-за 1% случаев. Это контр-интуитивно. Упорство - это хорошая черта. Я уважаю упорных. Но иногда упорство переходит в твердолобость. Как мы объясним пользователю или кастомеру clash имен классов? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:39 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
dakeiras, Мельком глянул код например здесь, Код: java 1. 2. 3. 4. 5.
У тебя же код выполняется в многопоточной среде так? А классы потоко-небезопастны. За счет чего у тебя идет согласованное чтение/запись если ты не используешь никакие примитивы синхронизации (synchronized, volatile, ReentrantLock) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:41 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
maytondakeirasпропущено... В 99% случаев это class name. И нет смысла его по другому называть из-за 1% случаев. Это контр-интуитивно. Упорство - это хорошая черта. Я уважаю упорных. Но иногда упорство переходит в твердолобость. Как мы объясним пользователю или кастомеру clash имен классов? Ок, без проблем. Пусть будет Logger Name ( in most cases Class Name). Ок? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:46 |
|
Новый альтернативный Slf4j логгер Бобина
|
|||
---|---|---|---|
#18+
vas0, Тут вообще весь проект и всё обсуждение строится на многопоточности и как оптимизировать быстродействие синхронизации. На текущий момент: - Файлы в ThreadLocal, чтобы не была запись в чужой файл - ConcurrentHashMap + ReentrantLock - чтобы в одном файле строки выводились синхронно для разных потоков Всё остальное потокобезопасно и не требует синхронизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 19:49 |
|
|
start [/forum/topic.php?fid=59&msg=39846581&tid=2120876]: |
0ms |
get settings: |
21ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
445ms |
get tp. blocked users: |
2ms |
others: | 316ms |
total: | 970ms |
0 / 0 |