|
|
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
Добрый день, может кто сможет подсказать, почему не выводит данные в лог в цикле и после цикла? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. И еще меня мучает вопрос, когда я делаю вот так: Код: java 1. В продакшене эта строчка не будет давать никакого эффекта, но каждый раз будет выполняться конкатенация. Как правильно такое сделать? Через мейкеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 11:41 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 11:42 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
Да и вообще вместо педалирования этого цикла вполне хватило бы Код: java 1. И RemovalListener был бы вызван. Но я сначала долго не мог понять, почему он не срабатывал. Как оказалось, он срабатывал, но так же как и в случае с циклом - просто не писал логи. Но мне уже стало интересно и я навелосипедил цикл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 11:46 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
Hett, Интересная ситуация. А оно стабильно так повторяется? Log4j вешает свой хук. Возможно, он выполняется раньше и когда дело доходит до этого цикла, log4j уже ничего не логирует. Скорее всего там исключение выкидывается. Оберните в try/catch с выводом в System.out. А в качестве решения, можно отключить хук от log4j и вырубать его самостоятельно из вашего хука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 11:49 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
HettИ еще меня мучает вопрос, когда я делаю вот так: Код: java 1. В продакшене эта строчка не будет давать никакого эффекта, но каждый раз будет выполняться конкатенация. Как правильно такое сделать? Через мейкеры? Во-первых что страшного в конкатенации, тем более она выполняется один раз при закрытии JVM? Но вообще в мануале пишут, что так же как и в slf4j можно подставлять параметры через фигурные скобки. https://logging.apache.org/log4j/2.x/performance.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 11:52 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
HettКак оказалось, он срабатывал, но так же как и в случае с циклом - просто не писал логи. Но мне уже стало интересно и я навелосипедил цикл. Как обычно. Значит нет там исключения. Просто надо родной хук логгера отключить и вызывать его самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 11:53 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
BlazkowiczHettИ еще меня мучает вопрос, когда я делаю вот так: Код: java 1. В продакшене эта строчка не будет давать никакого эффекта, но каждый раз будет выполняться конкатенация. Как правильно такое сделать? Через мейкеры? Во-первых что страшного в конкатенации, тем более она выполняется один раз при закрытии JVM? Но вообще в мануале пишут, что так же как и в slf4j можно подставлять параметры через фигурные скобки. https://logging.apache.org/log4j/2.x/performance.html Есть места где конкатенаций значительно больше и выполняется не только при закрытии, а достаточно много. Я так понял, что узким местом здесь как раз является сама конкатенация в виду создания нового объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 12:25 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
BlazkowiczHett, Интересная ситуация. А оно стабильно так повторяется? Log4j вешает свой хук. Возможно, он выполняется раньше и когда дело доходит до этого цикла, log4j уже ничего не логирует. Скорее всего там исключение выкидывается. Оберните в try/catch с выводом в System.out. А в качестве решения, можно отключить хук от log4j и вырубать его самостоятельно из вашего хука. Повторяется стабильно. Решение с выключением хука и обработкой его из моего процесса помогло, спасибо :) Судя по всему два хука выполнялись параллельно и в лог попадало только то, что успевал записать до закрытия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 12:32 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНо вообще в мануале пишут, что так же как и в slf4j можно подставлять параметры через фигурные скобки. Почитал, в общем-то да, думаю это будет быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 12:33 |
|
||
|
log4j2 и потоки
|
|||
|---|---|---|---|
|
#18+
HettBlazkowiczНо вообще в мануале пишут, что так же как и в slf4j можно подставлять параметры через фигурные скобки. Почитал, в общем-то да, думаю это будет быстрее. Только точнее сказать он не поддерживает скобки {}, а предлагает аналог: Код: java 1. 2. 3. если я правильно понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2016, 12:38 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39361740&tid=2123420]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 376ms |

| 0 / 0 |
