You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by mw...@apache.org on 2003/03/20 05:37:07 UTC
cvs commit: jakarta-log4j/contribs/JayFunnell NetSendAppender.java
mwomack 2003/03/19 20:37:07
Modified: contribs/JayFunnell NetSendAppender.java
Log:
Submitting new version of NetSendAppender, per Jay Funnell. "The corrections were provided by Volker Mentzner to handle the case where the native DLL is missing."
Revision Changes Path
1.2 +21 -10 jakarta-log4j/contribs/JayFunnell/NetSendAppender.java
Index: NetSendAppender.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/contribs/JayFunnell/NetSendAppender.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- NetSendAppender.java 13 Dec 2002 07:12:42 -0000 1.1
+++ NetSendAppender.java 20 Mar 2003 04:37:06 -0000 1.2
@@ -15,12 +15,12 @@
/**
<p>The NetSendAppender is a log4j appender that uses the popular Windows NET SEND
command to announce log events. This is handy for situations where immediate
- notification is required for critical log events. It's extremely unhandy for
+ notification is required for critical log events. It's extremely unhandy for
low-priority log messages because it will quickly annoy the user(s) receiving them :)
<p>A JNI component is used to perform the actual network communication. It must be
in your path when using this appender. The source code for this component was
- originally found
+ originally found
<a href="http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_20286388.html">here</a>
<p>Here is a list of the available configuration options:
@@ -70,23 +70,34 @@
A common problem with NET SENDs is that the recipient can receive duplicates messages. Note that this is because
the message is sent on every available transport layer. So if you have TCP/IP and IPX enabled, each will
be used to send the message to the user. This is not a problem with the NetSendAppender.
-
+
@author <a HREF="mailto:jay-funnell@shaw.ca">Jay Funnell</a>
*/
public class NetSendAppender extends AppenderSkeleton {
- static
- {
- System.loadLibrary("NetSendAppender");
- }
+ static boolean libraryLoaded = false;
String computer = null;
String toUser = null;
- String fromUser = null;
+ String fromUser = null;
boolean activated = false;
+ /** Default constructor */
+ public NetSendAppender() {
+ if (!libraryLoaded) {
+ try {
+ System.loadLibrary("NetSendAppender");
+ libraryLoaded = true;
+ } catch (UnsatisfiedLinkError err) {
+ LogLog.warn("problem loading NetSendAppender.dll:", err);
+ } catch (SecurityException ex) {
+ LogLog.warn("problem loading NetSendAppender.dll:", ex);
+ }
+ }
+ }
+
/** This appender requires a layout to format the text to the
attached client(s). */
public boolean requiresLayout() {
@@ -143,13 +154,13 @@
}
/** Shuts down the appender. */
- public void close() {
+ public void close() {
}
/** Handles a log event. For this appender, that means writing the
message to a JNI component that can handle the NET SEND. */
protected void append(LoggingEvent event) {
- if (activated) {
+ if (libraryLoaded && activated) {
sendMessage(computer, fromUser, toUser, this.layout.format(event));
if(layout.ignoresThrowable()) {
String[] s = event.getThrowableStrRep();
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-dev-help@jakarta.apache.org