BAEL-6754 Parameterized Logging with Slf4j (#14447)
- updated logback-classic version - updated logback.xml to have only one appender for new classes - added sample parameterized logging and fluent logging
This commit is contained in:
+36
@@ -0,0 +1,36 @@
|
||||
package com.baeldung.parameterized.logging;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class FluentLoggingPlayground {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
Exception exceptionCause = new Exception(new IllegalArgumentException("Something unprocessable"));
|
||||
|
||||
log.atInfo()
|
||||
.setMessage("App is running at {}, zone = {}")
|
||||
.addArgument(LocalDateTime.now())
|
||||
.addArgument(ZonedDateTime.now().getZone())
|
||||
.log();
|
||||
|
||||
log.atInfo()
|
||||
.setMessage("App is running at {}, zone = {}")
|
||||
.addArgument(LocalDateTime.now())
|
||||
.addArgument(ZonedDateTime.now().getZone())
|
||||
.setCause(exceptionCause)
|
||||
.log();
|
||||
|
||||
log.atInfo()
|
||||
.setMessage("App is running at")
|
||||
.addKeyValue("time", LocalDateTime.now())
|
||||
.addKeyValue("zone", ZonedDateTime.now().getZone())
|
||||
.setCause(exceptionCause)
|
||||
.log();
|
||||
|
||||
}
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.baeldung.parameterized.logging;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class LoggingPlayground {
|
||||
|
||||
public static final Logger log = LoggerFactory.getLogger(LoggingPlayground.class);
|
||||
|
||||
public static void main(String[] args) {
|
||||
log.info("App is running at {}", LocalDateTime.now());
|
||||
|
||||
log.info("App is running at {}, zone = {}", LocalDateTime.now(), ZonedDateTime.now()
|
||||
.getZone());
|
||||
|
||||
log.info("App is running at {}, zone = {}, java version = {}", LocalDateTime.now(), ZonedDateTime.now()
|
||||
.getZone(), System.getProperty("java.version"));
|
||||
|
||||
log.info("App is running at {}, zone = {}, java version = {}, java vm = {}", LocalDateTime.now(), ZonedDateTime.now()
|
||||
.getZone(), System.getProperty("java.version"), System.getProperty("java.vm.name"));
|
||||
|
||||
//old approach to print multiple parameters
|
||||
log.info("App is running at {}, zone = {}, java version = {}, java vm = {}",
|
||||
new Object[] { ZonedDateTime.now(), ZonedDateTime.now().getZone(), System.getProperty("java.version"), System.getProperty("java.vm.name") });
|
||||
|
||||
Exception exceptionCause = new Exception(new IllegalArgumentException("Something unprocessable"));
|
||||
|
||||
//exception as last parameters is considered as exception and printed with trace
|
||||
log.info("App is running at {}, zone = {}, java version = {}, java vm = {}", LocalDateTime.now(), ZonedDateTime.now()
|
||||
.getZone(), System.getProperty("java.version"), System.getProperty("java.vm.name"), exceptionCause);
|
||||
|
||||
//exception in between parameters is considered as pure parameter and printed without trace
|
||||
log.info("App is running at {}, zone = {}, java version = {}, java vm = {}", LocalDateTime.now(), ZonedDateTime.now()
|
||||
.getZone(), System.getProperty("java.version"), exceptionCause, System.getProperty("java.vm.name"));
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user