From e7cf50a8fb46ef884aae35b82c61a28a58272093 Mon Sep 17 00:00:00 2001 From: Marco Zanon Date: Sun, 28 Jul 2024 17:06:14 +0000 Subject: [PATCH] Implemented parameters to customize the log filter mark message. --- CHANGELOG | 5 +++ .../marcozanon/macaco/logging/MLogFilter.java | 10 +++-- .../MLogFilterMarkMessageAppender.java | 39 +++++++++++++++++-- 3 files changed, 48 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 060c2c4..78d70a4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,11 @@ Macaco Copyright (c) 2009-2024 Marco Zanon . 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) ------------------- diff --git a/src/main/java/com/marcozanon/macaco/logging/MLogFilter.java b/src/main/java/com/marcozanon/macaco/logging/MLogFilter.java index b01998d..24563a2 100644 --- a/src/main/java/com/marcozanon/macaco/logging/MLogFilter.java +++ b/src/main/java/com/marcozanon/macaco/logging/MLogFilter.java @@ -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(); } diff --git a/src/main/java/com/marcozanon/macaco/logging/MLogFilterMarkMessageAppender.java b/src/main/java/com/marcozanon/macaco/logging/MLogFilterMarkMessageAppender.java index 4be2315..d803380 100644 --- a/src/main/java/com/marcozanon/macaco/logging/MLogFilterMarkMessageAppender.java +++ b/src/main/java/com/marcozanon/macaco/logging/MLogFilterMarkMessageAppender.java @@ -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 { -- 2.30.2