/* */
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 {
/* 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();
}
}
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. */
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) {
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 {