JAL-3026 major update 1/2
[jalview.git] / srcjar_unused / org / apache / log4j / helpers / LogLog.java
diff --git a/srcjar_unused/org/apache/log4j/helpers/LogLog.java b/srcjar_unused/org/apache/log4j/helpers/LogLog.java
new file mode 100644 (file)
index 0000000..29869ed
--- /dev/null
@@ -0,0 +1,194 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j.helpers;
+
+/**
+   This class used to output log statements from within the log4j package.
+
+   <p>Log4j components cannot make log4j logging calls. However, it is
+   sometimes useful for the user to learn about what log4j is
+   doing. You can enable log4j internal logging by defining the
+   <b>log4j.configDebug</b> variable.
+
+   <p>All log4j internal debug calls go to <code>System.out</code>
+   where as internal error messages are sent to
+   <code>System.err</code>. All internal messages are prepended with
+   the string "log4j: ".
+   
+   @since 0.8.2
+   @author Ceki G&uuml;lc&uuml;
+*/
+public class LogLog {
+
+  /**
+     Defining this value makes log4j print log4j-internal debug
+     statements to <code>System.out</code>.
+     
+    <p> The value of this string is <b>log4j.debug</b>.
+    
+    <p>Note that the search for all option names is case sensitive.  */
+  public static final String DEBUG_KEY="log4j.debug";
+
+  /**
+     Defining this value makes log4j components print log4j-internal
+     debug statements to <code>System.out</code>.
+     
+    <p> The value of this string is <b>log4j.configDebug</b>.
+    
+    <p>Note that the search for all option names is case sensitive.  
+
+    @deprecated Use {@link #DEBUG_KEY} instead.
+  */
+  public static final String CONFIG_DEBUG_KEY="log4j.configDebug";
+
+  protected static boolean debugEnabled = false;  
+
+  /**
+     In quietMode not even errors generate any output.
+   */
+  private static boolean quietMode = false;
+
+  private static final String PREFIX = "log4j: ";
+  private static final String ERR_PREFIX = "log4j:ERROR ";
+  private static final String WARN_PREFIX = "log4j:WARN ";
+
+  static {
+    String key = OptionConverter.getSystemProperty(DEBUG_KEY, null);
+
+    if(key == null) {
+      key = OptionConverter.getSystemProperty(CONFIG_DEBUG_KEY, null);
+    }
+
+    if(key != null) { 
+      debugEnabled = OptionConverter.toBoolean(key, true);
+    }
+  }
+
+  /**
+     Allows to enable/disable log4j internal logging.
+   */
+  static
+  public
+  void setInternalDebugging(boolean enabled) {
+    debugEnabled = enabled;
+  }
+
+  /**
+     This method is used to output log4j internal debug
+     statements. Output goes to <code>System.out</code>.
+  */
+  public
+  static
+  void debug(String msg) {
+    if(debugEnabled && !quietMode) {
+      System.out.println(PREFIX+msg);
+    }
+  }
+
+  /**
+     This method is used to output log4j internal debug
+     statements. Output goes to <code>System.out</code>.
+  */
+  public
+  static
+  void debug(String msg, Throwable t) {
+    if(debugEnabled && !quietMode) {
+      System.out.println(PREFIX+msg);
+      if(t != null) {
+        t.printStackTrace(System.out);
+    }
+    }
+  }
+  
+
+  /**
+     This method is used to output log4j internal error
+     statements. There is no way to disable error statements.
+     Output goes to <code>System.err</code>.
+  */
+  public
+  static
+  void error(String msg) {
+    if(quietMode) {
+        return;
+    }
+    System.err.println(ERR_PREFIX+msg);
+  }  
+
+  /**
+     This method is used to output log4j internal error
+     statements. There is no way to disable error statements.
+     Output goes to <code>System.err</code>.  
+  */
+  public
+  static
+  void error(String msg, Throwable t) {
+    if(quietMode) {
+        return;
+    }
+
+    System.err.println(ERR_PREFIX+msg);
+    if(t != null) {
+      t.printStackTrace();
+    }
+  }  
+
+  /**
+     In quite mode no LogLog generates strictly no output, not even
+     for errors. 
+
+     @param quietMode A true for not
+  */
+  public
+  static
+  void setQuietMode(boolean quietMode) {
+    LogLog.quietMode = quietMode;
+  }
+
+  /**
+     This method is used to output log4j internal warning
+     statements. There is no way to disable warning statements.
+     Output goes to <code>System.err</code>.  */
+  public
+  static
+  void warn(String msg) {
+    if(quietMode) {
+        return;
+    }
+
+    System.err.println(WARN_PREFIX+msg);
+  }  
+
+  /**
+     This method is used to output log4j internal warnings. There is
+     no way to disable warning statements.  Output goes to
+     <code>System.err</code>.  */
+  public
+  static
+  void warn(String msg, Throwable t) {
+    if(quietMode) {
+        return;
+    }
+
+    System.err.println(WARN_PREFIX+msg);
+    if(t != null) {
+      t.printStackTrace();
+    }
+  }  
+}