`
jeffrey_zhang
  • 浏览: 19420 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

日志系统-SLF4J+Logback --学习笔记

阅读更多

 

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>

分享到:
评论
22 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
        
       
:       
       
         
        
                         
21 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
        
       
:       
       
         
        
20 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
        
       
:       
       
         
19 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
        
       
:       
       
18 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
        
       
:       
17 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
        
       
16 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
        
15 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
[/       
14 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
       
13 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
       
12 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
       
11 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
       
10 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
       
9 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
       
8 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
       
7 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
       
6 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
       
5 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
hxtoyou 写道
           
       
       
        
4 楼 hxtoyou 2011-04-14  
hxtoyou 写道
hxtoyou 写道
           
       
       
3 楼 hxtoyou 2011-04-14  
hxtoyou 写道
           
       

相关推荐

    日志技术笔记总结.pdf

    日志技术是软件开发中不可或缺的一部分,主要用于记录系统运行过程中的事件、错误、警告和调试信息,便于后期问题...通过对JUL、Log4j、Logback和SLF4J等框架的学习,开发者可以根据项目需求选择最适合的日志解决方案。

    资料-Java日志.zip

    Java平台上有多种日志框架,如Java内置的日志API(java.util.logging)、Log4j、Logback、SLF4J(Simple Logging Facade for Java)等。这些框架各有特点,例如Java内置日志API简单易用,但功能相对有限;Log4j历史...

    springboot学习笔记.docx

    - Spring Boot默认采用SLF4J和Logback作为日志系统,支持灵活的日志配置和输出。 总的来说,Spring Boot通过简化配置和提供预封装的组件,极大地提升了开发效率,使其成为现代Java开发的首选框架。

    整合SSM(Spring+Spring+Mybatis)所有到的jar包和笔记

    常见的日志库有Log4j、SLF4J和Logback,对应的jar包也需要引入。 8. **测试支持**:为了进行单元测试和集成测试,我们需要引入`spring-test.jar`和`junit.jar`。 在整合过程中,我们还需要编写相应的配置文件(如`...

    java后端面试题(按天复习).zip

    - **日志框架**:Log4j、SLF4J、Logback的日志管理和配置。 - **单元测试**:JUnit、Mockito的使用方法。 - **版本控制**:Git的常用命令及协作流程。 通过这些知识点的学习和复习,Java后端开发者可以全面地...

    spring_note.zip

    Spring 5.0引入了对现代日志框架的全面支持,如SLF4J(Simple Logging Facade for Java)和Logback。这些框架提供了更灵活的日志配置和性能优化。在Spring中集成日志框架,可以方便地记录应用程序的运行状态和异常...

    Spring高级四十九讲,spring5.rar

    新的`ErrorController`接口和全局异常处理器使得错误页面的展示更加优雅,而对SLF4J和Logback的日志集成则提供了更强大的日志记录能力。 通过"Spring高级四十九讲"的学习,开发者将能深入理解Spring 5的各个核心...

    Spring Boot教程.pdf

    在日志处理中,我们可以使用 @Slf4j 注解来标注日志类,并使用 logger 对象来记录日志信息。同时,我们也可以使用日志配置文件来配置日志的输出格式和级别。 五、Web 实战 Web 实战是 Spring Boot 中的一个重要...

Global site tag (gtag.js) - Google Analytics