From b4bcadbdf06212c15a1e6c5d6137a43ef1c893e1 Mon Sep 17 00:00:00 2001 From: Aleksandr Kolosov Date: Fri, 6 Sep 2024 15:59:27 +0300 Subject: [PATCH] Default formatter as static var --- .../coap/server/filter/RequestLoggerFilter.java | 4 +++- .../server/filter/RequestLoggerFilterTest.java | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/coap-core/src/main/java/com/mbed/coap/server/filter/RequestLoggerFilter.java b/coap-core/src/main/java/com/mbed/coap/server/filter/RequestLoggerFilter.java index 5bb4b36a..a90d001a 100644 --- a/coap-core/src/main/java/com/mbed/coap/server/filter/RequestLoggerFilter.java +++ b/coap-core/src/main/java/com/mbed/coap/server/filter/RequestLoggerFilter.java @@ -50,9 +50,11 @@ public interface Formatter { } public static class Builder { + public static Formatter DEFAULT_FORMATTER = (req, resp, duration) -> String.format("[%s] %s -> %s (%dms)", req.getPeerAddress(), req, resp, duration); + private Logger logger = LoggerFactory.getLogger(RequestLoggerFilter.class); private Level logLevel = Level.INFO; - private Formatter msgFormatter = (req, resp, duration) -> String.format("%s -> %s (%dms)", req, resp, duration); + private Formatter msgFormatter = DEFAULT_FORMATTER; public Builder logger(Logger logger) { this.logger = logger; diff --git a/coap-core/src/test/java/com/mbed/coap/server/filter/RequestLoggerFilterTest.java b/coap-core/src/test/java/com/mbed/coap/server/filter/RequestLoggerFilterTest.java index 8b3690ba..68008a29 100644 --- a/coap-core/src/test/java/com/mbed/coap/server/filter/RequestLoggerFilterTest.java +++ b/coap-core/src/test/java/com/mbed/coap/server/filter/RequestLoggerFilterTest.java @@ -30,6 +30,7 @@ import java.util.concurrent.*; import static com.mbed.coap.packet.CoapRequest.get; +import static com.mbed.coap.server.filter.RequestLoggerFilter.Builder.DEFAULT_FORMATTER; import static com.mbed.coap.utils.CoapRequestBuilderFilter.REQUEST_BUILDER_FILTER; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -48,6 +49,13 @@ public void beforeEach() { listAppender.start(); } + @Test + void defaultFormatterShouldWork() { + String logMsg = DEFAULT_FORMATTER.apply(get("/").address(new InetSocketAddress("1.1.1.1", 31337)).build(), CoapResponse.ok().build(), 123); + + assertEquals("[/1.1.1.1:31337] CoapRequest[GET] -> CoapResponse[205] (123ms)", logMsg); + } + @Test void shouldLogRequestAndResponseWithDefaultMessage() { // given @@ -63,22 +71,21 @@ void shouldLogRequestAndResponseWithDefaultMessage() { assertTrue(logEvent.getMessage().contains("205")); } + @Test void shouldLogRequestAndResponseWithCustomParameters() { // given Filter filter = REQUEST_BUILDER_FILTER.andThen( logFilterBuilder - .msgFormatter((req, resp, __) -> String.format("[%s] %s %s -> %s", req.getPeerAddress(), req.getMethod(), req.options().getUriPath(), resp.getCode().codeToString())) + .msgFormatter((req, resp, __) -> String.format("%s %s -> %s", req.getPeerAddress(), req.getMethod(), req.options().getUriPath(), resp.getCode().codeToString())) .logLevel(DEBUG) .build() ); - filter.apply( - get("/dupa").address(new InetSocketAddress("1.1.1.1", 31337)), __ -> CoapResponse.ok().toFuture() - ).join(); + filter.apply(get("/dupa"), __ -> CoapResponse.ok().toFuture()).join(); // then ILoggingEvent logEvent = listAppender.list.get(0); assertEquals(Level.DEBUG, logEvent.getLevel()); - assertEquals("[/1.1.1.1:31337] GET /dupa -> 205", logEvent.getMessage()); + assertEquals("GET /dupa -> 205", logEvent.getMessage()); } }