Logback是对log4j的升级版,有着更快的速度和更少的内存占用。
Logback有三个模块:
1.logback-core:日志处理核心组件
2. Logback-classic:该模块可以视为log4j的显著改进版本,同时实现了slf4j api。
3. Logback-access:该模块与Servlet容器(如Tomcat和Jetty)集成,以提供HTTP访问日志功能。
在Web应用程序中应用slf4j和logback
1.导入相关jar包到WEB-INF/lib下(如果是Maven工程请忽视这一步)
2. Maven工程中添加Logback依赖项到pom.xml中。
```
<dependcy>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependcy>
```
3. XML配置
```
<?xml Version=”1.0” encoding=”UTF-8”?>
<configuration>
<appender name =“STDOUT”class =“ch.qos.logback.core.ConsoleAppender”>
<layout class =“ch.qos。 logback.classic.PatternLayout“>
<Pattern>%d {HH:mm:ss.SSS} [%thread]%-5level%logger {36} - %msg%n </ Pattern>
</ layout>
</ appender>
<logger name =“com.base22”level =“TRACE”/>
<root level =“debug”>
<appender-ref ref =“STDOUT”/>
</ root>
</ configuration>
```
注意到一个记录器是在包级别定义的(“com.base22”)。您可以简单地更改它以匹配您的应用程序的包基础。如果需要,您还可以声明其他记录器(包和/或类)。
4. 将日志记录代码放到类中:
```
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
```
在类顶部添加一下内容(在声明类公共类的行下面),在getLogger方法中调用中更改类的名称(MyClassName)。
```
static final Logger LOG = LoggerFactory.getLogger(MyClassName.class);
```
可以在代码中的某些位置设置一些日志记录语句,在运行应用程序时它们会立即被执行。
```
LOG.trace("Hello World!");
LOG.debug("How are you today?");
LOG.info("I am fine.");
LOG.warn("I love programming.");
LOG.error("I am programming.");
```
下面是一个简单的测试程序:
```
public class SLF4JConsoleTest {
static final Logger LOG = LoggerFactory.getLogger(SLF4JConsoleTest.class);
public static void main(String[] args) {
SLF4JConsoleTest console = new SLF4JConsoleTest();
console.execute();
}
public SLF4JConsoleTest() {
}
public void execute() {
if (LOG.isTraceEnabled()) {
LOG.trace("Test: TRACE level message.");
}
if (LOG.isDebugEnabled()) {
LOG.debug("Test: DEBUG level message.");
}
if (LOG.isInfoEnabled()) {
LOG.info("Test: INFO level message.");
}
if (LOG.isWarnEnabled()) {
LOG.warn("Test: WARN level message.");
}
if (LOG.isErrorEnabled()) {
LOG.error("Test: ERROR level message.");
}
}
}
```