BAEL-1710 - A Guide to Logback (#4178)
This commit is contained in:
parent
05b7e933bd
commit
fd76b01251
|
@ -5,3 +5,4 @@
|
|||
|
||||
- [Creating a Custom Logback Appender](http://www.baeldung.com/custom-logback-appender)
|
||||
- [Get Log Output in JSON Format](http://www.baeldung.com/java-log-json-output)
|
||||
- [A Guide To Logback](http://www.baeldung.com/a-guide-to-logback)
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
package com.baeldung.logback;
|
||||
|
||||
import ch.qos.logback.classic.Level;
|
||||
import org.junit.Test;
|
||||
|
||||
import ch.qos.logback.classic.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class LogbackTests {
|
||||
|
||||
@Test
|
||||
public void givenLogHierarchy_MessagesFiltered() {
|
||||
|
||||
ch.qos.logback.classic.Logger parentLogger =
|
||||
(ch.qos.logback.classic.Logger) LoggerFactory.getLogger("com.baeldung.logback");
|
||||
|
||||
parentLogger.setLevel(Level.INFO);
|
||||
|
||||
Logger childlogger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger("com.baeldung.logback.tests");
|
||||
|
||||
parentLogger.warn("This message is logged because WARN > INFO.");
|
||||
|
||||
// This request is disabled, because DEBUG < INFO.
|
||||
parentLogger.debug("This message is not logged because DEBUG < INFO.");
|
||||
|
||||
childlogger.info("INFO == INFO");
|
||||
|
||||
childlogger.debug("DEBUG < INFO");
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenRootLevel_MessagesFiltered() {
|
||||
|
||||
ch.qos.logback.classic.Logger logger =
|
||||
(ch.qos.logback.classic.Logger) LoggerFactory.getLogger("com.baeldung.logback");
|
||||
|
||||
logger.debug("Hi there!");
|
||||
|
||||
Logger rootLogger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
|
||||
|
||||
logger.debug("This message is logged because DEBUG == DEBUG.");
|
||||
|
||||
rootLogger.setLevel(Level.ERROR);
|
||||
logger.warn("This message is not logged because WARN < ERROR.");
|
||||
|
||||
logger.error("This is logged.");
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenParameters_ValuesLogged() {
|
||||
|
||||
Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(LogbackTests.class);
|
||||
|
||||
String message = "This is a String";
|
||||
Integer zero = 0;
|
||||
|
||||
try {
|
||||
logger.debug("Logging message: {}", message);
|
||||
logger.debug("Going to divide {} by {}", 42, zero);
|
||||
int result = 42 / zero;
|
||||
} catch (Exception e) {
|
||||
logger.error("Error dividing {} by {} ", 42, zero, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenConfig_MessageFiltered() {
|
||||
|
||||
Logger foobar = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("com.baeldung.foobar");
|
||||
Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("com.baeldung.logback");
|
||||
Logger testslogger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("com.baeldung.logback.tests");
|
||||
|
||||
foobar.debug("This is logged from foobar");
|
||||
logger.debug("This is not logged from logger");
|
||||
logger.info("This is logged from logger");
|
||||
testslogger.info("This is not logged from tests");
|
||||
testslogger.warn("This is logged from tests");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
<configuration debug="true">
|
||||
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!-- encoders are assigned the type
|
||||
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
|
||||
<encoder>
|
||||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
||||
<file>tests.log</file>
|
||||
<append>true</append>
|
||||
<!-- set immediateFlush to false for much higher logging throughput -->
|
||||
<immediateFlush>true</immediateFlush>
|
||||
<!-- encoders are assigned the type
|
||||
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
|
||||
<encoder>
|
||||
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
|
||||
<root level="debug">
|
||||
<appender-ref ref="STDOUT" />
|
||||
</root>
|
||||
<logger name="com.baeldung.logback" level="INFO" />
|
||||
<logger name="com.baeldung.logback.tests" level="WARN">
|
||||
<appender-ref ref="FILE" />
|
||||
</logger>
|
||||
|
||||
</configuration>
|
Loading…
Reference in New Issue