From 2314de9dd9f9abbef360f5c6240487c0ac7e5fc3 Mon Sep 17 00:00:00 2001
From: Ceki Gulcu
Date: Fri, 5 Aug 2022 22:46:46 +0200
Subject: [PATCH] add setMessage and log method to the fluent API
Signed-off-by: Ceki Gulcu
---
.../slf4j/spi/DefaultLoggingEventBuilder.java | 18 ++-
.../org/slf4j/spi/LoggingEventBuilder.java | 103 +++++++++++++++++-
.../org/slf4j/spi/NOPLoggingEventBuilder.java | 34 ++++--
3 files changed, 144 insertions(+), 11 deletions(-)
diff --git a/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java b/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java
index 884a73881..66652b070 100755
--- a/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java
+++ b/slf4j-api/src/main/java/org/slf4j/spi/DefaultLoggingEventBuilder.java
@@ -86,7 +86,23 @@ public LoggingEventBuilder addArgument(Supplier> objectSupplier) {
public void setCallerBoundary(String fqcn) {
loggingEvent.setCallerBoundary(fqcn);
}
-
+
+ @Override
+ public void log() {
+ log(loggingEvent);
+ }
+
+ @Override
+ public LoggingEventBuilder setMessage(String message) {
+ loggingEvent.setMessage(message);
+ return this;
+ }
+ @Override
+ public LoggingEventBuilder setMessage(Supplier messageSupplier) {
+ loggingEvent.setMessage(messageSupplier.get());
+ return this;
+ }
+
@Override
public void log(String message) {
loggingEvent.setMessage(message);
diff --git a/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java b/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java
index fc42c1c1b..599dfcb48 100755
--- a/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java
+++ b/slf4j-api/src/main/java/org/slf4j/spi/LoggingEventBuilder.java
@@ -29,34 +29,131 @@
import org.slf4j.Marker;
/**
- * This is main interface in slf4j's fluent API for creating logging events.
+ * This is the main interface in slf4j's fluent API for creating
+ * {@link org.slf4j.event.LoggingEvent logging events}.
*
* @author Ceki Gülcü
* @since 2.0.0
- *
*/
public interface LoggingEventBuilder {
+ /**
+ * Set the cause for the logging event being built.
+ * @param cause a throwable
+ * @return a LoggingEventBuilder, usually this.
+ */
LoggingEventBuilder setCause(Throwable cause);
+ /**
+ * A {@link Marker marker} to the event being built.
+ *
+ * @param marker a Marker instance to add.
+ * @return a LoggingEventBuilder, usually this.
+ */
LoggingEventBuilder addMarker(Marker marker);
+ /**
+ * Add an argument to the event being built.
+ *
+ * @param p an Object to add.
+ * @return a LoggingEventBuilder, usually this.
+ */
LoggingEventBuilder addArgument(Object p);
+ /**
+ * Add an argument supplier to the event being built.
+ *
+ * @param objectSupplier an Object supplier to add.
+ * @return a LoggingEventBuilder, usually this.
+ */
LoggingEventBuilder addArgument(Supplier> objectSupplier);
+
+ /**
+ * Add a {@link org.slf4j.event.KeyValuePair key value pair} to the event being built.
+ *
+ * @param key the key of the key value pair.
+ * @param value the value of the key value pair.
+ * @return a LoggingEventBuilder, usually this.
+ */
LoggingEventBuilder addKeyValue(String key, Object value);
- LoggingEventBuilder addKeyValue(String key, Supplier
+ *
+ * @return the singleton instance of this class
+ */
public static LoggingEventBuilder singleton() {
return SINGLETON;
}
@@ -56,8 +64,20 @@ public LoggingEventBuilder setCause(Throwable cause) {
}
@Override
- public void log(String message) {
+ public void log() {
+ }
+
+ @Override
+ public LoggingEventBuilder setMessage(String message) {
+ return this;
+ }
+ @Override
+ public LoggingEventBuilder setMessage(Supplier messageSupplier) {
+ return this;
+ }
+ @Override
+ public void log(String message) {
}
@Override