LogBack - 一个通用可靠、快速灵活的日志框架,更多信息请参考官方网站。
LogBack 将作为Log4j的替代,和slf4j组成新的日志系统的完整实现。LogBack分为三个模块:logback-core、logback- classic和logback-access。logback-core是其它两个模块的基础;logback-classic是log4j的一个改良版本; logback-access与Servlet容器集成提供通过Http来访问日志的功能。
SLF4J - 一个通用的日志门面库,为各种Logging API提供了一套通用的日志接口,更多信息请参考官方网站。
SLF4J会根据classpath中所存在的适配器的jar来决定将使用的日志实现库。
Logback日志需要依赖一下jar包:
slf4j-api-1.6.0.jar
logback-core-0.9.21.jar
logback-classic-0.9.21.jar
logback-access-0.9.21.jar
主配置文件为logback.xml,放在src目录下或是WEB-INF/classes下,logback会自动加载
同时删除原来的commons-logging.jar和log4j.jar
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
final Logger logger = LoggerFactory.getLogger(Test.class);
public void logTest() {
// 不再需要log.isDebugalbe(),代码更简洁
logger.debug(”hello {}”, “amsz”);
logger.info("hihi{}","hhhh");
}
}
再看看logback.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<substitutionProperty name="log.base" value="../logs/hzg" />
<jmxConfigurator />
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</layout>
</appender>
<!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份)-->
<appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<File>${log.base}.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.base}.%d{yyyy-MM-dd}.log.zip</FileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>2MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</layout>
</appender>
<!-- 需要记录日志的包 -->
<logger name="com.hzg.core">
<level value="WARN" />
</logger>
<logger name="com.hzg.test">
<level value="INFO" />
</logger>
<logger name="org.springframework">
<level value="WARN" />
</logger>
<logger name="org.hibernate">
<level value="WARN" />
</logger>
<logger name="org.hibernate.SQL">
<level value="WARN" />
</logger>
<logger name="org.hibernate.cache">
<level value="ERROR" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="stdout" />
<appender-ref ref="logfile" />
</root>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG"><appender-ref ref="STDOUT" /></root>
</configuration>
logback.xml的基本配置信息都包含在configuration标签中,需要含有至少一个appender标签用于指定日志输出方式和输出格式,root标签为系统默认日志进程,通过level指定日志级别,通过appender-ref关联前面指定顶的日志输出方式。
例子中的appender使用的是ch.qos.logback.core.ConsoleAppender类,用于对控制台进行日志输出
其中encoder标签指定日志输出格式为“时间 线程 级别 类路径 信息”
logback的文件日志输出方式还提供多种日志分包策略
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>E:/logs/mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>E:/logs/mylog-%d{yyyy-MM-dd_HH-mm}.%i.log</fileNamePattern>
<maxHistory>5</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
</encoder>
</appender
文件日志输出采用的ch.qos.logback.core.rolling.RollingFileAppender类,它的基本属性包括<file>指定输入文件路径,encoder指定日志格式。其中,rollingPolicy标签指定的是日志分包策略,ch.qos.logback.core.rolling.TimeBasedRollingPolicy类实现的是基于时间的分包策略,分包间隔是根据fileNamePattern中指定的事件最小单位,比如例子中的%d{yyyy-MM-dd_HH-mm}的最小事件单位为分,它的触发方式就是1分钟,策略在每次想日志中添加新内容时触发,如果满足条件,就将mylog.txt复制到E:/logs/目录并更名为mylog-2010-06-22_13-13.1.log,并删除原mylog.txt。maxHistory的值为指定E:/logs目录下存在的类似mylog-2010-06-22_13-13.1.log文件的最大个数,当超过时会删除最早的文件。此外,策略还可以互相嵌套,比如本例中在时间策略中又嵌套了文件大小策略,ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP实现对单文件大小的判断,当超过maxFileSize中指定大大小时,文件名中的变量%i会加一,即在不满足时间触发且满足大小触发时,会生成mylog-2010-06-22_13-13.1.log和mylog-2010-06-22_13-13.2.log两个文件
.数据库日志
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<dataSource
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
<user>root</user>
<password>root</password>
</dataSource>
</connectionSource>
</appender>
数据库输出使用ch.qos.logback.classic.db.DBAppender类
3、总结:
使用slf4j+logback的优势:
- 支持按文件大小或基于时间的切分方式,可自定义命名模式
- 支持文件打包(触发器方式)
- 支持OSGI环境
如果在单纯的logging环境中,使用SLF4J意义不大。如果想在各种logger API中切换,SELF4J是理想选择,另外在新的项目中,使用SLF4J+Logback是比较好的日志框架选型。
分享到:
相关推荐
未结问题是指HAP框架中尚未解决的Logback应用问题,而已结问题是指已经解决的Logback应用问题。 HAP框架-Logback入门手册旨在为读者提供一个关于HAP框架和Logback的入门指南,旨在帮助读者快速了解和掌握Logback的...
Logback日志应用.mp4
Logback 是一个流行的 Java 日志框架,由 Ceki Gülcü 创建,他是早期日志框架 Log4j 的主要开发者。Logback 是为了提供更高效、更灵活的日志记录解决方案而设计的,它不仅继承了 Log4j 的优点,还解决了一些性能和...
这个压缩包包含了实现 Logback 功能所需的几个关键组件,以及一个配置文件,使得用户能够方便地管理和记录应用程序的日志信息。 1. **logback-core-1.2.3.jar**: 这是 Logback 的核心库,包含了日志记录的基本...
**日志框架Logback简介** Logback 是一个用于日志记录的开源框架,由 Ceki Gülcü(也是 Log4j 的创始人)设计并开发。...对于开发者而言,理解和掌握 Logback 的使用能够提升应用程序的监控和调试能力。
Logback 是一个在Java应用程序中广泛使用的日志记录框架,它是对早期的log4j框架的一个升级和扩展。Logback 提供了高效、灵活的日志记录解决方案,支持多种日志级别,如DEBUG、INFO、WARN、ERROR等,帮助开发者调试...
了解并熟练掌握Logback,可以帮助开发者更有效地管理和分析应用的日志信息。通过链接(https://blog.csdn.net/qq_27471405/article/details/86595308)可以获取更多关于Logback的详细教程和实践案例。
本文将详细介绍如何使用SLF4J与Logback来输出应用程序的日志,并提供必要的配置和依赖知识。 1. **SLF4J介绍** SLF4J提供了一种统一的日志接口,使得开发者可以在不改变代码的情况下切换不同的日志实现,如Log4j、...
学习和理解SLF4J与Logback的使用,对于Java开发者来说非常重要,它们能够帮助我们有效地管理和监控应用程序的运行状况。通过配置`logback.xml`,我们可以根据需求调整日志级别,定位问题,优化性能,甚至实现日志的...
- **logback-classic**: 这个模块是log4j的一个改进版,实现了SLF4J接口,使得应用可以方便地切换到其他日志系统。它还包含一个名为`ch.qos.logback.classic.Logger`的类,它是`java.util.logging.Logger`的替代品,...
由于描述为空,具体的博文内容不得而知,但通常会涵盖如何在Java应用中集成logback,以及如何通过配置文件(如logback.xml或logback.groovy)定制日志行为。 **标签:“源码”、“工具”** “源码”标签意味着...
在实际应用中,这三个jar文件通常一起使用,slf4j-api作为日志的接口层,logback-classic作为具体的日志实现,而logback-core则负责提供底层的日志处理能力。通过这种方式,开发人员可以利用SLF4J的灵活性,在不影响...
《logback类库详解》 在Java开发领域,日志管理是不可或缺的一部分,它帮助开发者追踪应用程序的运行状态,...通过理解并熟练运用logback,开发者可以更好地监控和调试他们的应用程序,提升开发效率和系统的可维护性。
Logback 是一个专门为Java应用程序设计的日志框架,由log4j的创始人Ceki Gülcü设计,旨在提高日志处理的效率和灵活性。它在性能和资源消耗方面优于log4j和其他日志系统,提供了许多独特的特性,如Marker、参数化...
6. **实时重载**:Logback 支持配置文件的实时重载,无需重启应用即可更改日志设置。 总结来说,Logback-1.1.3 是一个成熟的日志框架,提供了丰富的配置选项和强大的功能,适用于各种 Java 应用场景。虽然不是最新...
综上所述,Slf4j与Logback的结合使用可以为Java应用程序提供强大的日志管理能力。通过合理的配置和测试,我们可以确保日志系统既满足调试需求,又不拖累应用性能。在实际开发中,理解并熟练运用这些工具是非常重要的...
Logback 与 SLF4J 结合使用,提供了一个抽象层,使得应用程序可以轻松地切换到其他日志框架,如 Log4j 或 java.util.logging,而无需修改代码。SLF4J API 简洁且易于理解,使得日志记录成为一种轻量级任务。 在实际...
2. **logback-classic**:是 logback 的经典实现,它实现了 SLF4J(Simple Logging Facade for Java)API,使得应用程序可以透明地使用各种日志框架,如 log4j 或 java.util.logging。同时,logback-classic 还包含...
"Logback例子" 这个标题表明我们将要探讨的是关于Logback的日志框架的一个实际应用示例。Logback是一个在Java应用程序中用于处理日志的开源库,它是Log4j的后继者,由Ceki Gülcü创建,提供了更高的性能和更丰富的...
在提供的"Logback+web项目Demo"中,你可以看到如何将Logback集成到一个Web应用程序中,并进行日志输出。这个Demo应该包含了一个简单的Web应用,以及配置好的 `logback.xml` 文件。通过导入Eclipse,你可以直接运行和...