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