Implemented parameters to customize the log filter mark message.
authorMarco Zanon <info@marcozanon.com>
Sun, 28 Jul 2024 17:06:14 +0000 (17:06 +0000)
committerMarco Zanon <info@marcozanon.com>
Sun, 28 Jul 2024 17:06:14 +0000 (17:06 +0000)
10.x/CHANGELOG
10.x/src/main/java/com/marcozanon/macaco/logging/MLogFilter.java
10.x/src/main/java/com/marcozanon/macaco/logging/MLogFilterMarkMessageAppender.java

index 060c2c47b9b44efc56d5ec5e2860e7e031cd82c9..78d70a419edebf1b165be5f14a3fc3ef75a19ef9 100644 (file)
@@ -2,6 +2,11 @@ Macaco
 Copyright (c) 2009-2024 Marco Zanon <info@marcozanon.com>.
 See LICENSE for details.
 
+-------------------
+10.1.0 (2024-07-28)
+-------------------
+* Implemented parameters to customize the log filter mark message.
+
 -------------------
 10.0.3 (2024-03-04)
 -------------------
index b01998de7453152abc35d4bfb235e41ecddcdbd0..24563a22c92a155dbf066958d96c2ce84eabdebe 100644 (file)
@@ -31,11 +31,15 @@ public class MLogFilter extends MObject {
     /* */
 
     public MLogFilter(MLogFilter.Threshold threshold) {
+        this(threshold, MConstants.LOG_FILTER_MARK_INTERVAL, MConstants.LOG_FILTER_MARK_MESSAGE);
+    }
+
+    public MLogFilter(MLogFilter.Threshold threshold, long logFilterMarkInterval, String logFilterMarkMessage) {
         super();
         //
         this.setThreshold(threshold);
         //
-        this.setLogFilterMarkMessageAppender();
+        this.setLogFilterMarkMessageAppender(logFilterMarkInterval, logFilterMarkMessage);
     }
 
     public void close() throws MLoggingException {
@@ -87,10 +91,10 @@ public class MLogFilter extends MObject {
 
     /* Mark messages. */
 
-    protected void setLogFilterMarkMessageAppender() {
+    protected void setLogFilterMarkMessageAppender(long logFilterMarkInterval, String logFilterMarkMessage) {
         this.updateLastLogMessageDatetime();
         //
-        this.logFilterMarkMessageAppender = new MLogFilterMarkMessageAppender(this);
+        this.logFilterMarkMessageAppender = new MLogFilterMarkMessageAppender(this, logFilterMarkInterval, logFilterMarkMessage);
         //
         (new Thread(this.getLogFilterMarkMessageAppender(), MConstants.LOG_FILTER_MARK_MESSAGE_APPENDER_THREAD_ID)).start();
     }
index 4be23154c758dc2ebbef89f2360c7c5179a31714..d80338084ed65ab25ec617e37bbd7cd4c3c74b70 100644 (file)
@@ -19,15 +19,20 @@ public class MLogFilterMarkMessageAppender implements Runnable {
     }
 
     protected MLogFilter logFilter = null;
+    protected long logFilterMarkInterval = -1;
+    protected String logFilterMarkMessage = null;
 
     protected MLogFilterMarkMessageAppender.RunMode runMode = null;
 
     /* */
 
-    public MLogFilterMarkMessageAppender(MLogFilter logFilter) {
+    public MLogFilterMarkMessageAppender(MLogFilter logFilter, long logFilterMarkInterval, String logFilterMarkMessage) {
         this.setRunMode(MLogFilterMarkMessageAppender.RunMode.INITIALIZING);
         //
         this.setLogFilter(logFilter);
+        //
+        this.setLogFilterMarkInterval(logFilterMarkInterval);
+        this.setLogFilterMarkMessage(logFilterMarkMessage);
     }
 
     /* Log filter. */
@@ -44,6 +49,32 @@ public class MLogFilterMarkMessageAppender implements Runnable {
         return this.logFilter;
     }
 
+    /* Log filter mark. */
+
+    protected void setLogFilterMarkInterval(long logFilterMarkInterval) {
+        if (0 > logFilterMarkInterval) {
+            throw new IllegalArgumentException("Invalid 'logFilterMarkInterval': lesser than 0.");
+        }
+        //
+        this.logFilterMarkInterval = logFilterMarkInterval;
+    }
+
+    protected long getLogFilterMarkInterval() {
+        return this.logFilterMarkInterval;
+    }
+
+    protected void setLogFilterMarkMessage(String logFilterMarkMessage) {
+        if (null == logFilterMarkMessage) {
+            throw new IllegalArgumentException("Invalid 'logFilterMarkMessage': null.");
+        }
+        //
+        this.logFilterMarkMessage = logFilterMarkMessage;
+    }
+
+    protected String getLogFilterMarkMessage() {
+        return this.logFilterMarkMessage;
+    }
+
     /* Threading. */
 
     public synchronized void setRunMode(MLogFilterMarkMessageAppender.RunMode runMode) {
@@ -63,8 +94,10 @@ public class MLogFilterMarkMessageAppender implements Runnable {
         this.setRunMode(MLogFilterMarkMessageAppender.RunMode.RUNNING);
         //
         while (MLogFilterMarkMessageAppender.RunMode.RUNNING == this.getRunMode()) {
-            if (MConstants.LOG_FILTER_MARK_INTERVAL <= ChronoUnit.SECONDS.between(this.getLogFilter().getLastLogMessageDatetime(), LocalDateTime.now())) {
-                this.getLogFilter().appendSafeMessage(MLogFilter.Threshold.STANDARD, MConstants.LOG_FILTER_MARK_MESSAGE);
+            if (0 < this.getLogFilterMarkInterval()) {
+                if (this.getLogFilterMarkInterval() <= ChronoUnit.SECONDS.between(this.getLogFilter().getLastLogMessageDatetime(), LocalDateTime.now())) {
+                    this.getLogFilter().appendSafeMessage(MLogFilter.Threshold.STANDARD, this.getLogFilterMarkMessage());
+                }
             }
             //
             try {