http://blog.sina.com.cn/s/blog_3fc7e2810100vio9.html
实例:
1、 结构图:
2、 Jar包
logback-classic-0.9.28.jar
logback-core-0.9.28.jar
slf4j-api-1.6.1.jar
3、 TestLogback.java
package logback.test;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.util.StatusPrinter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogbackTest {
private static final Logger log = LoggerFactory.getLogger(LogbackTest.class);
public static void main(String[] args) {
// TODO Auto-generated method stub
log.info("logback + slf4j starting up ...");
LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory();
try {
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
lc.reset();
configurator.doConfigure("conf/logback-log.xml");
}
catch (JoranException e) {
log.error(e.getMessage());
}
//打印logback加载过程
StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
log.info("flyfox server daemon run.");
log.info("test info");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
log.debug("test debug");
log.error("test error");
}
}
4、 logback-log.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{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %r, %ex, %F, %L, %C{1}, %M : %m%n</pattern>
</layout>
</appender>
<!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份)-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>log/logback.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>log/sshd.log.%i.bak</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>12</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %r, %ex, %F, %L, %C{1}, %M %m%n</Pattern>
</layout>
</appender>
<appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
<File>log/logback-err.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>log/sshd-err.log.%i.bak</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>3</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %r, %ex, %F, %L, %C{1}, %M %m%n</Pattern>
</layout>
</appender>
<root level="ALL">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
<appender-ref ref="FILE-ERROR"/>
</root>
</configuration>
5、 logback.log和logback-err.log
logback.log
2011-07-22 21:32:03, INFO, logback.test.LogbackTest, main, 328, , LogbackTest.java, 33, l.t.LogbackTest, main flyfox server daemon run.
2011-07-22 21:32:03, INFO, logback.test.LogbackTest, main, 328, , LogbackTest.java, 34, l.t.LogbackTest, main test info
2011-07-22 21:32:03, DEBUG, logback.test.LogbackTest, main, 438, , LogbackTest.java, 41, l.t.LogbackTest, main test debug
2011-07-22 21:32:03, ERROR, logback.test.LogbackTest, main, 438, , LogbackTest.java, 42, l.t.LogbackTest, main test error
logback-err.log
2011-07-22 21:32:03, ERROR, logback.test.LogbackTest, main, 438, , LogbackTest.java, 42, l.t.LogbackTest, main test error
6、 控制台输出
21:32:03.562 [main] INFO logback.test.LogbackTest - logback + slf4j starting up ...
21:32:03,468 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
21:32:03,468 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
21:32:03,468 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
21:32:03,468 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.
21:32:03,671 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
21:32:03,687 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
………………………………………………………………
………………………………………………………………
………………………………………………………………
21:32:03,765 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT]
21:32:03,765 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE-ERROR] to Logger[ROOT]
2011-07-22 21:32:03, INFO, logback.test.LogbackTest, main, 328, , LogbackTest.java, 33, l.t.LogbackTest, main : flyfox server daemon run.
2011-07-22 21:32:03, INFO, logback.test.LogbackTest, main, 328, , LogbackTest.java, 34, l.t.LogbackTest, main : test info
2011-07-22 21:32:03, DEBUG, logback.test.LogbackTest, main, 438, , LogbackTest.java, 41, l.t.LogbackTest, main : test debug
2011-07-22 21:32:03, ERROR, logback.test.LogbackTest, main, 438, , LogbackTest.java, 42, l.t.LogbackTest, main : test error
分享到:
相关推荐
Logback是SLF4J的一个实现,由著名日志框架Log4j的创始人Ceki Gülcü所创建。Logback被认为是比Log4j更高效、功能更强大的日志处理框架。 本文将详细介绍如何使用SLF4J与Logback来输出应用程序的日志,并提供必要...
本文将通过一个配置实例,详细介绍如何在项目中集成和使用SLF4J与Logback。 首先,我们需要在项目的类路径下添加SLF4J和Logback的相关依赖。通常,这包括`slf4j-api.jar`(SLF4J API)、`logback-classic.jar`...
通过上述内容,我们可以了解到SLF4J和Logback日志系统的使用方法以及其主要特点。对于开发人员来说,理解并熟练使用这套日志系统,能够帮助提升代码的可读性,方便调试和问题排查,同时也能提高项目的维护性。
在Spring MVC应用中,你可以通过SLF4J的LoggerFactory获取Logger实例,并在控制器、服务、DAO等各个层记录日志。例如: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Test...
3. **使用Slf4j API**: 在Java代码中,通过import slf4j的LoggerFactory来获取Logger实例,然后调用其各种方法记录日志。例如: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public ...
SLF4J(Simple Logging Facade for Java)与Logback是Java日志处理中的两个重要组件,它们在软件开发中广泛用于实现灵活、高效的日志记录。SLF4J作为一个日志门面,提供了一种统一的日志API,使得开发者能够在不绑定...
SLF4J允许您选择任何支持的底层日志库,如Logback、Log4j、Java Util Logging等。在实际项目中,SLF4J与Logback的组合被广泛使用,因为Logback被认为是性能优秀且功能丰富的日志实现。 首先,我们需要理解SLF4J的...
SLF4J(Simple Logging Facade for Java)和Logback是Java日志处理中的两个重要组件,它们在软件开发中广泛用于记录应用程序的运行时信息。SLF4J作为一个日志门面,提供了一种标准的接口,允许开发者在运行时插入...
SLF4J(Simple Logging Facade for Java)是Java中一个用于日志记录的抽象层,它提供了一种标准的日志记录接口,使得开发者可以选择不同的日志实现框架,如Log4j、Logback等。MongoDB则是一个流行的NoSQL数据库系统...
1. **SLF4J API**:项目中的Java代码将使用SLF4J的API来记录日志,如`LoggerFactory.getLogger()`方法获取logger实例,然后调用`info()`, `debug()`, `error()`等方法记录不同级别的日志。 2. **Logback配置**:...
SLF4J(Simple Logging Facade for Java)是一个日志门面,它为各种日志框架提供一个统一的接口,如Logback、Log4j、Java Util Logging等。它的主要目标是使日志库与应用程序解耦,让开发者能够在不修改代码的情况...
**Spring Boot SLF4J与Logback日志实践** 在Java开发中,日志系统扮演着至关重要的角色,它能够帮助我们追踪程序运行时的问题、分析性能瓶颈以及调试代码。Spring Boot作为现代化的Java开发框架,已经为我们预设了...
SLF4J提供了一个抽象层,允许开发者在部署时插入所需的日志实现,比如Log4j、Logback等。这样做的好处是提高了代码的可移植性和灵活性,因为不同的项目可能有不同的日志需求或偏好。 SLF4J的核心组件是`slf4j-api-1...
- 在项目中通过SLF4J的API编写日志代码,例如`LoggerFactory.getLogger(MyClass.class)`来获取日志实例。 - 配置Log4j,设置日志输出的级别、格式和目的地。这通常在项目的启动阶段完成,可以通过配置文件或程序动态...
SLF4J(Simple Logging Facade for Java)是Java的日志抽象层,它提供了一种标准的接口,允许用户在不修改代码的情况下更换不同的日志框架,如Log4j、Logback等。Log4j2是Log4j的升级版,提供了更优秀的性能和更多的...
通过"Logback实例,log4,slf4,logback日志输出demo"的学习,你可以掌握如何配置这些工具,以满足项目需求,如指定日志的存储位置,定制日志格式,以及管理日志文件的生命周期。实践这些示例,将有助于提升你在日志...
它的主要目标是为各种日志框架(如Logback、Log4j等)提供一个统一的接口,使得在项目中切换日志框架变得简单。SLF4J的核心概念包括Logger、Level和Marker,它们分别用于定义日志记录器、控制日志级别和标记特定的...
本文将详细探讨如何通过SLF4J接口来使用Log4j进行日志记录,并展示一个测试代码实例。 **SLF4J简介** SLF4J是一个抽象层,为各种日志框架提供了统一的API,如Logback、Log4j等。它的主要优点在于可以让你在不修改...
SLF4J是一个日志门面接口,它为各种日志框架提供了统一的编程接口,如Logback、Log4j等。Log4j则是一个具体的日志实现,它提供了丰富的日志功能和高性能的特性。下面我们将详细讨论这两个组件以及如何在Java项目中...
在代码中,你可以使用SLF4J的LoggerFactory获取一个Logger实例,然后通过这个实例进行日志记录。SLF4J的API提供了各种方法,如`info()`, `debug()`, `warn()` 和 `error()`,对应不同级别的日志输出。 7. **总结**...