1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.log4j.bridge;
18
19 import org.apache.log4j.Appender;
20 import org.apache.log4j.Layout;
21 import org.apache.log4j.helpers.AppenderAttachableImpl;
22 import org.apache.log4j.spi.ErrorHandler;
23 import org.apache.log4j.spi.Filter;
24 import org.apache.log4j.spi.LoggingEvent;
25 import org.apache.logging.log4j.Logger;
26 import org.apache.logging.log4j.core.filter.AbstractFilterable;
27 import org.apache.logging.log4j.status.StatusLogger;
28
29
30
31
32
33 public class AppenderWrapper extends AppenderAttachableImpl implements Appender {
34
35 private static final Logger LOGGER = StatusLogger.getLogger();
36 private final org.apache.logging.log4j.core.Appender appender;
37
38 public AppenderWrapper(org.apache.logging.log4j.core.Appender appender) {
39 this.appender = appender;
40 }
41
42 public org.apache.logging.log4j.core.Appender getAppender() {
43 return appender;
44 }
45
46 @Override
47 public void addFilter(Filter newFilter) {
48 if (appender instanceof AbstractFilterable) {
49 if (newFilter instanceof FilterWrapper) {
50 ((AbstractFilterable) appender).addFilter(((FilterWrapper) newFilter).getFilter());
51 } else {
52 ((AbstractFilterable) appender).addFilter(new FilterAdapter(newFilter));
53 }
54 } else {
55 LOGGER.warn("Unable to add filter to appender {}, it does not support filters", appender.getName());
56 }
57 }
58
59 @Override
60 public Filter getFilter() {
61 return null;
62 }
63
64 @Override
65 public void clearFilters() {
66
67 }
68
69 @Override
70 public void close() {
71
72 }
73
74 @Override
75 public void doAppend(LoggingEvent event) {
76 if (event instanceof LogEventAdapter) {
77 appender.append(((LogEventAdapter) event).getEvent());
78 }
79 }
80
81 @Override
82 public String getName() {
83 return appender.getName();
84 }
85
86 @Override
87 public void setErrorHandler(ErrorHandler errorHandler) {
88 appender.setHandler(new ErrorHandlerAdapter(errorHandler));
89 }
90
91 @Override
92 public ErrorHandler getErrorHandler() {
93 return ((ErrorHandlerAdapter)appender.getHandler()).getHandler();
94 }
95
96 @Override
97 public void setLayout(Layout layout) {
98
99 }
100
101 @Override
102 public Layout getLayout() {
103 return new LayoutWrapper(appender.getLayout());
104 }
105
106 @Override
107 public void setName(String name) {
108
109 }
110
111 @Override
112 public boolean requiresLayout() {
113 return false;
114 }
115 }