JAL-3949 Complete new abstracted logging framework in jalview.log. Updated log calls...
[jalview.git] / src / jalview / log / JalviewAppender.java
similarity index 72%
rename from src/jalview/gui/JalviewAppender.java
rename to src/jalview/log/JalviewAppender.java
index 229a1f6..07239f8 100644 (file)
@@ -18,7 +18,7 @@
  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
-package jalview.gui;
+package jalview.log;
 
 import java.io.Serializable;
 import java.nio.charset.StandardCharsets;
@@ -26,11 +26,15 @@ import java.nio.charset.StandardCharsets;
 import javax.swing.JTextArea;
 import javax.swing.SwingUtilities;
 
+import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.appender.AbstractAppender;
-import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.apache.logging.log4j.core.config.Property;
+
+import jalview.log.JLoggerI.LogLevel;
+import jalview.util.Log4j;
 
 /**
  * From http://textareaappender.zcage.com/ the means to capture the logs, too.
@@ -38,26 +42,26 @@ import org.apache.logging.log4j.core.layout.PatternLayout;
  */
 public class JalviewAppender extends AbstractAppender
 {
+  public final static String NAME = "JalviewAppender";
 
-  private final static Layout simpleLayout;
-
-  static
+  public JalviewAppender()
   {
-    // SimpleLayout pattern found from
-    // https://logging.apache.org/log4j/log4j-2.12.4/manual/migration.html
-    simpleLayout = PatternLayout.newBuilder().withPattern("%level - %m%n")
-            .build();
+    this(LogLevel.INFO);
   }
 
-  protected JalviewAppender()
+  public JalviewAppender(LogLevel loglevel)
   {
-    this("JalviewAppender", null, simpleLayout);
+    super(NAME,
+            Log4j.getThresholdFilter(loglevel == null ? Level.INFO
+                    : Log4j.log4jLevel(loglevel)),
+            Log4j.getSimpleLayout(), false, new Property[0]);
   }
 
   protected JalviewAppender(String name, Filter filter,
-          Layout<? extends Serializable> layout)
+          Layout<? extends Serializable> layout, boolean ignoreExceptions,
+          Property[] properties)
   {
-    super(name, filter, layout);
+    super(name, filter, layout, ignoreExceptions, properties);
     // TODO Auto-generated constructor stub
   }
 
@@ -74,8 +78,8 @@ public class JalviewAppender extends AbstractAppender
    */
   public void append(LogEvent logEvent)
   {
-    final String message = new String(simpleLayout.toByteArray(logEvent),
-            StandardCharsets.UTF_8);
+    final String message = new String(
+            this.getLayout().toByteArray(logEvent), StandardCharsets.UTF_8);
 
     // Append formatted message to textarea using the Swing Thread.
     SwingUtilities.invokeLater(new Runnable()