NTEventLogAppenderpublic class NTEventLogAppender extends AppenderSkeleton Append to the NT event log system.
WARNING This appender can only be installed and used on a
Windows system.
Do not forget to place the file NTEventLogAppender.dll in a
directory that is on the PATH of the Windows system. Otherwise, you
will get a java.lang.UnsatisfiedLinkError. |
Fields Summary |
---|
private int | _handle | private String | source | private String | server |
Constructors Summary |
---|
public NTEventLogAppender()
this(null, null, null);
| public NTEventLogAppender(String source)
this(null, source, null);
| public NTEventLogAppender(String server, String source)
this(server, source, null);
| public NTEventLogAppender(Layout layout)
this(null, null, layout);
| public NTEventLogAppender(String source, Layout layout)
this(null, source, layout);
| public NTEventLogAppender(String server, String source, Layout layout)
if (source == null) {
source = "Log4j";
}
if (layout == null) {
this.layout = new TTCCLayout();
} else {
this.layout = layout;
}
try {
_handle = registerEventSource(server, source);
} catch (Exception e) {
e.printStackTrace();
_handle = 0;
}
|
Methods Summary |
---|
public void | activateOptions()
if (source != null) {
try {
_handle = registerEventSource(server, source);
} catch (Exception e) {
LogLog.error("Could not register event source.", e);
_handle = 0;
}
}
| public void | append(org.apache.log4j.spi.LoggingEvent event)
StringBuffer sbuf = new StringBuffer();
sbuf.append(layout.format(event));
if(layout.ignoresThrowable()) {
String[] s = event.getThrowableStrRep();
if (s != null) {
int len = s.length;
for(int i = 0; i < len; i++) {
sbuf.append(s[i]);
}
}
}
// Normalize the log message level into the supported categories
int nt_category = event.getLevel().toInt();
// Anything above FATAL or below DEBUG is labeled as INFO.
//if (nt_category > FATAL || nt_category < DEBUG) {
// nt_category = INFO;
//}
reportEvent(_handle, sbuf.toString(), nt_category);
| public void | close()
// unregister ...
| private native void | deregisterEventSource(int handle)
| public void | finalize()
deregisterEventSource(_handle);
_handle = 0;
| public java.lang.String | getSource()
return source;
| private native int | registerEventSource(java.lang.String server, java.lang.String source)
| private native void | reportEvent(int handle, java.lang.String message, int level)
| public boolean | requiresLayout()The NTEventLogAppender requires a layout. Hence,
this method always returns true .
return true;
| public void | setSource(java.lang.String source)The Source option which names the source of the event. The
current value of this constant is Source.
this.source = source.trim();
|
|