*/protectedbooleanisDiscardable(ILoggingEvent event){Level level=event.getLevel();returnlevel.toInt()<=Level.INFO_INT;} LOSSY BY DEFAULT IF 80% FULLAsyncAppender buffers events in a BlockingQueue. A worker threa
--<appender-ref ref="consoleWithSwitch"/>--><appender-refref="catAppender"/><appender-refref="asyncFileAppender"/></root></springProfile> 那么何时把队列中的数据存入日志文件呢?AsyncAppenderBase 中有一个 Worker 对象,负责从队列中取数据并调用 AppenderAttachableImpl 来处理:(这里一次只取一个进行追...
at java.util.concurrent.FutureTask.run(FutureTask.java:262)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:744)Caused by: org.apache.catalina.Lifecycle...
(4) 启动Appender,启动worker线程读取数据(需要确保Appender在worker线程前启动). 1.3 关闭appender @Overridepublicvoidstop(){if(!isStarted())return;super.stop();// interrupt the worker thread so that it can terminate. Note that the interruption can be consumed// by sub-appendersworker.interrupt();I...
Caused by: org.apache.logging.log4j.core.config.ConfigurationException: No appenders are available for AsyncAppender Asyncat org.apache.logging.log4j.core.appender.AsyncAppender.start(AsyncAppender.java:105)at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:157)at ...
worker.interrupt(); try { worker.join(1000); } catch (InterruptedException e) { addError("Failed to join worker thread", e); } } 代码示例来源:origin: camunda/camunda-bpm-platform @Override public void start() { if (appenderCount == 0) { addError("No attached appenders found."); ret...
--<appender-ref ref="consoleWithSwitch"/>--><appender-refref="catAppender"/><appender-refref="asyncFileAppender"/></root></springProfile> 那么何时把队列中的数据存入日志文件呢?AsyncAppenderBase 中有一个 Worker 对象,负责从队列中取数据并调用 AppenderAttachableImpl 来处理:(这里一次只取一个进行...
1.1 Worker线程 classWorkerextendsThread{publicvoidrun(){ AsyncAppenderBase<E> parent = AsyncAppenderBase.this; AppenderAttachableImpl<E> aai = parent.aai;// loop while the parent is startedwhile(parent.isStarted()) {try{Ee=parent.blockingQueue.take(); ...