1. Logback 提供了三个模块Core、classic、access. 其中Core是基础,其他两个包依赖于这个包。
logback-classic是SLF4J原生的实现。所以你可以用其他logging System去替换它。当然logback-classic依赖于slf4j-api
logback-access与servlet容器集成。提供http-access的log功能。
2. Logback 内建三个主要的类: Logger,Appender和Layout. Logger是logback-classic模块的一部分,而Appender和Layout接口是logback-core的一部分
3. Logger接口
package org.slf4j;
public interface Logger{
public void trace(String message);
public void debug(String message);
public void info(String message);
public void warn(String message);
public void error(String message);
}
4. Logger Level
TRACE < DEBUG < INFO < WARN < ERROR
5. Logback通过logback.xml进行配置。
加载机制:
1. Logback首先会在classpath中查找logback-test.xml
2. Logback会在classpath中查找logback.xml
3. 如果既没有找到logback-test.xml,也没有找到logback.xml,则自动使用BasicConfigurator作为logger配置文件,输出到控制台。
BasicConfigurator使用默认的PatternLayout是: %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
6. 简单的logback.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>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
-configuration属性:
1. debug(true/false)
2. scan(true/false)
3. scanPeriod(30 seconds)--加入没有时间单位。默认为毫秒
7. 保存logback信息到Db
Table Name:logging_event
---------------------------------
Field Name Type
---------------------------------
timestmp big int
formatted_message text
logger_name varchar
level_string varchar
reference_flag smallint
caller_filename varchar
caller_class varchar
caller_method varchar
caller_line varchar
event_id int
----------------------------------
----------------------------------
Table Name: logging_event_property
----------------------------------
File Name Type
----------------------------------
event_id int
mapped_key varchar
mapped_value text
-----------------------------------
-----------------------------------
Table Name: logging_event_exception
-----------------------------------
File Name Type
-----------------------------------
event_id int
i smallint
trace_line varchar
8. logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<timestamp key="byDay" datePattern="yyyyMMdd"/>
<!-- Output to Console -->
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %level [%thread] %10logger [%file:%line] %msg%n</pattern>
</layout>
</appender>
<!-- Output to File -->
<appender name="FileHtml" class="ch.qos.logback.core.FileAppender">
<file>log/MyApp-${byDay}.log.html</file>
<layout class="ch.qos.logback.classic.html.HTMLLayout">
<pattern>%date%level%thread%10logger%file%line%msg</pattern>
</layout>
</appender>
<!-- Output by Email -->
<!--
<appender name="Email" class="ch.qos.logback.classic.net.SMTPAppender">
<SMTPHost>stmp host name</SMTPHost>
<To>Email Address</To>
<To>Email Address</To>
<From>Email Address</From>
<Subject>TESTING Email Function: %logger{20} - %m</Subject>
<layout class="ch.qos.logback.classic.html.HTMLLayout">
<pattern>%date%level%thread%10logger%file%line%msg</pattern>
</layout>
</appender>
-->
<!-- Output to Database -->
<!--
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://localhost:3306/test</url>
<user>root</user>
<password>trend_dev</password>
</connectionSource>
</appender>
-->
<root level="TRACE">
<appender-ref ref="Console"/>
<appender-ref ref="FileHtml"/>
<!--
<appender-ref ref="Email"/>
<appender-ref ref="DB"/> -->
</root>
</configuration>
分享到:
相关推荐
日志技术是软件开发中不可或缺的一部分,主要用于记录系统运行过程中的事件、错误、警告和调试信息,便于后期问题...通过对JUL、Log4j、Logback和SLF4J等框架的学习,开发者可以根据项目需求选择最适合的日志解决方案。
Java平台上有多种日志框架,如Java内置的日志API(java.util.logging)、Log4j、Logback、SLF4J(Simple Logging Facade for Java)等。这些框架各有特点,例如Java内置日志API简单易用,但功能相对有限;Log4j历史...
- Spring Boot默认采用SLF4J和Logback作为日志系统,支持灵活的日志配置和输出。 总的来说,Spring Boot通过简化配置和提供预封装的组件,极大地提升了开发效率,使其成为现代Java开发的首选框架。
常见的日志库有Log4j、SLF4J和Logback,对应的jar包也需要引入。 8. **测试支持**:为了进行单元测试和集成测试,我们需要引入`spring-test.jar`和`junit.jar`。 在整合过程中,我们还需要编写相应的配置文件(如`...
- **日志框架**:Log4j、SLF4J、Logback的日志管理和配置。 - **单元测试**:JUnit、Mockito的使用方法。 - **版本控制**:Git的常用命令及协作流程。 通过这些知识点的学习和复习,Java后端开发者可以全面地...
Spring 5.0引入了对现代日志框架的全面支持,如SLF4J(Simple Logging Facade for Java)和Logback。这些框架提供了更灵活的日志配置和性能优化。在Spring中集成日志框架,可以方便地记录应用程序的运行状态和异常...
新的`ErrorController`接口和全局异常处理器使得错误页面的展示更加优雅,而对SLF4J和Logback的日志集成则提供了更强大的日志记录能力。 通过"Spring高级四十九讲"的学习,开发者将能深入理解Spring 5的各个核心...
在日志处理中,我们可以使用 @Slf4j 注解来标注日志类,并使用 logger 对象来记录日志信息。同时,我们也可以使用日志配置文件来配置日志的输出格式和级别。 五、Web 实战 Web 实战是 Spring Boot 中的一个重要...