1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.async;
18
19 import com.lmax.disruptor.ExceptionHandler;
20
21
22
23
24 public class AsyncLoggerDefaultExceptionHandler implements ExceptionHandler<RingBufferLogEvent> {
25
26 @Override
27 public void handleEventException(final Throwable throwable, final long sequence, final RingBufferLogEvent event) {
28 final StringBuilder sb = new StringBuilder(512);
29 sb.append("AsyncLogger error handling event seq=").append(sequence).append(", value='");
30 try {
31 sb.append(event);
32 } catch (final Exception ignored) {
33 sb.append("[ERROR calling ").append(event.getClass()).append(".toString(): ");
34 sb.append(ignored).append("]");
35 }
36 sb.append("':");
37 System.err.println(sb);
38 throwable.printStackTrace();
39 }
40
41 @Override
42 public void handleOnStartException(final Throwable throwable) {
43 System.err.println("AsyncLogger error starting:");
44 throwable.printStackTrace();
45 }
46
47 @Override
48 public void handleOnShutdownException(final Throwable throwable) {
49 System.err.println("AsyncLogger error shutting down:");
50 throwable.printStackTrace();
51 }
52 }