Index: src/main/java/org/apache/log4j/helpers/SyslogWriter.java
===================================================================
--- src/main/java/org/apache/log4j/helpers/SyslogWriter.java	(revision 743604)
+++ src/main/java/org/apache/log4j/helpers/SyslogWriter.java	(working copy)
@@ -46,6 +46,25 @@
   private InetAddress address;
   private final int port;
   private DatagramSocket ds;
+  private boolean resolveOnce = true;
+  
+  /**
+   *  Constructs a new instance of SyslogWriter.
+   *  @param syslogHost host name, may not be null.  A port
+   *  may be specified by following the name or IPv4 literal address with
+   *  a colon and a decimal port number.  To specify a port with an IPv6
+   *  address, enclose the IPv6 address in square brackets before appending
+   *  the colon and decimal port number.
+   *  @param resolveOnce boolean which states if the syslogHost DNS resolution
+   *  should be cached forever. Defaults to true. False will force the appender
+   *  to ask the JVM to resolve the syslogHost for each message. The JVM may
+   *  then apply its own internal cache policy.
+   */
+  public
+  SyslogWriter(final String syslogHost, final boolean resolveOnce) {
+    this(syslogHost);
+    this.resolveOnce = resolveOnce;
+  }
 
   /**
    *  Constructs a new instance of SyslogWriter.
@@ -127,6 +146,18 @@
         if (bytesLength >= 1024) {
             bytesLength = 1024;
         }
+        
+        if (!resolveOnce)
+        {
+            try {      
+                address = InetAddress.getByName(syslogHost);
+            }
+            catch (UnknownHostException e) {
+                LogLog.error("Could not find " + syslogHost +
+                ". All logging will FAIL.", e);
+            }        	
+        }
+        
         DatagramPacket packet = new DatagramPacket(bytes, bytesLength,
                                address, port);
         ds.send(packet);
Index: src/main/java/org/apache/log4j/net/SyslogAppender.java
===================================================================
--- src/main/java/org/apache/log4j/net/SyslogAppender.java	(revision 743604)
+++ src/main/java/org/apache/log4j/net/SyslogAppender.java	(working copy)
@@ -101,6 +101,8 @@
   //SyslogTracerPrintWriter stp;
   SyslogQuietWriter sqw;
   String syslogHost;
+  
+  boolean resolveOnce = true;
 
     /**
      * If true, the appender will generate the HEADER (timestamp and host name)
@@ -401,8 +403,28 @@
   String getSyslogHost() {
     return syslogHost;
   }
+  
+  /**
+    The <b>ResolveOnce</b> option is optional and allows you to override the
+    default appender behavour which is to resolve the syslogHost once and
+    cache the result until the JVM is reset.
+   */
+  public
+  void setResolveOnce(final boolean resolveOnce) {
+    this.sqw = new SyslogQuietWriter(new SyslogWriter(syslogHost, resolveOnce),
+                     syslogFacility, errorHandler);
+    this.resolveOnce = resolveOnce;
+  }
 
   /**
+     Returns the value of the <b>ResolveOnce</b> option.
+   */
+  public
+  boolean getResolveOnce() {
+    return resolveOnce;
+  }  
+
+  /**
      Set the syslog facility. This is the <b>Facility</b> option.
 
      <p>The <code>facilityName</code> parameter must be one of the
