1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.log4j.chainsaw;
18
19 import org.apache.log4j.Appender;
20 import org.apache.log4j.AppenderSkeleton;
21 import org.apache.log4j.helpers.Constants;
22 import org.apache.log4j.helpers.OptionConverter;
23 import org.apache.log4j.spi.LoggingEvent;
24
25 import java.net.InetAddress;
26 import java.net.UnknownHostException;
27
28
29
30
31
32
33
34
35
36
37 public class ChainsawAppender
38 extends AppenderSkeleton {
39
40 private Appender appender;
41
42
43
44
45
46
47
48 private static ChainsawAppender sSharedAppender = null;
49
50
51
52
53 private String viewerClassname;
54 private String hostname = "localhost";
55 private String application = "app";
56
57
58
59
60 public ChainsawAppender() {
61 super(false);
62 synchronized (ChainsawAppender.class) {
63 if (sSharedAppender == null) {
64 sSharedAppender = this;
65 }
66 }
67 }
68
69
70
71
72
73
74
75
76 static ChainsawAppender getInstance() {
77 return sSharedAppender;
78 }
79
80
81
82
83
84
85 public boolean requiresLayout() {
86 return false;
87 }
88
89 public Appender getAppender() {
90 return appender;
91 }
92
93 public void setAppender(Appender appender) {
94 this.appender = appender;
95 }
96
97
98
99
100
101
102 protected void append(LoggingEvent aEvent) {
103 if (hostname != null) {
104 aEvent.setProperty(Constants.HOSTNAME_KEY, hostname);
105 }
106
107 if (application != null) {
108 aEvent.setProperty(Constants.APPLICATION_KEY, application);
109 }
110
111 appender.doAppend(aEvent);
112 }
113
114
115
116
117
118 public void activateOptions() {
119 if (viewerClassname == null) {
120 viewerClassname = "org.apache.log4j.chainsaw.DefaultViewer";
121 }
122
123 ChainsawViewer viewer =
124 (ChainsawViewer) OptionConverter.instantiateByClassName(viewerClassname,
125 ChainsawViewer.class, null);
126
127 if (viewer != null) {
128 viewer.activateViewer(this);
129 }
130 try {
131 hostname = InetAddress.getLocalHost().getHostName();
132 } catch (UnknownHostException uhe) {
133 try {
134 hostname = InetAddress.getLocalHost().getHostAddress();
135 } catch (UnknownHostException uhe2) {
136 }
137 }
138 }
139
140
141
142
143 public void close() {
144 }
145
146
147
148
149
150
151
152 public void setViewerClass(String classname) {
153 viewerClassname = classname;
154 }
155
156
157
158
159
160
161 public String getViewerClass() {
162 return viewerClassname;
163 }
164
165
166
167
168
169 public void setApplication(String lapp) {
170 this.application = lapp;
171 }
172
173
174
175
176 public String getApplication() {
177 return application;
178 }
179
180
181 }