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