Fix async log appender not print error log when bookie starting expectionally#4475
Conversation
|
IIUC, you mean call |
dlg99
left a comment
There was a problem hiding this comment.
What happens if the user doesn't include logs4j's jars and uses logback or something else?
All prod components of BK should only depend on slf4j.
Good point. But it seems that there is no way to shutdown or force flush the log through slf4j api. So some log will be lost if user using async logger appender. I think that we could print the key error logs to |
|
rerun failure checks |
|
Thank you for the update. I understand the need to ensure logs are flushed properly. However, adding multiple BTW, I am trying to fix the ci in #4476 |
|
reopen's reason: rerun failure checks |
When using Log4J2, it would be necessary to call
In Pulsar, this is handled with reflection: |
|
@AnonHxy Would you please check Lari's comment? Just printing |
Motivation
Fix #4474
The root cause is that when bookie starting error, the java runtime will exit immediately. And the log4j can not shutdown gracefully:
bookkeeper/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
Lines 199 to 201 in e5c418e
Changes
Call
LogManager#shutdownin jvm shutdown hook.