zoukankan      html  css  js  c++  java
  • slf4j+logback日志框架 的具体使用操作【spring boot自带的默认日志框架】

    1.前言

      是不是还在使用System.out.println()打印数据到控制台看?

    东西少还好,如果多起来,那就看的很烦人了,特别还有加时间等信息。

      怎么解决?

      可以使用日志框架 ,常见的有 logging 、log4j等 ,这一篇随笔详细讲解 logback。

    log4j 、slf4j、logback 都是一个作者开发的,但是作者说log4j太烂了,都懒得修改,于是开发了 logback

     

    2.操作

    (1)导入依赖包

    如果是 spring boot 工程则不需要导入依赖包,是自带的

    //

    如果是其他工程,但是不使用spring ,则直接添加这个

    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>log4j-over-slf4j</artifactId>
    </dependency>
    <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    </dependency>

    如果是spring ,则还需要将spring控制器的依赖包内部的logging去除

    <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
                <!--因为使用了sl4j,所以去掉commons-logging-->
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
    </dependency>

    并添加commons loggingslf4j的桥接器jcl-over-slf4j【不添加则无法使用】

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
            </dependency>

    (2)在application.properties文件配置logging信息

    # 指定日志输入级别【根节点,表明整个项目基本的日志级别】
    logging.level.root=info
    # ** 表示是指定的某个文件的路径或类的日志级别
    #logging.level.**=info
    
    # 指定日志输出位置和日志文件名 , ./指工程根目录
    #logging.file.name=./log/log.txt
    
    # 指定日志输出路径,若file和path同时配置,则file生效
    # 此配置默认生成文件为spring.log
    logging.file.path=./log
    
    # 控制台日志输出格式
    # -5表示从左显示5个字符宽度
    logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %boldYellow(%thread) | %boldGreen(%logger) | %msg%n
    
    # 文件中输出的格式
    logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} = [%thread] = %-5level = %logger{50} - %msg%n
    
    #说明
    #
    #日志输出格式:
    #%d表示日期时间,
    #%thread表示线程名,
    #%-5level:级别从左显示5个字符宽度
    #%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
    #%msg:日志消息,
    #%n是换行符
    #%highlight 、%boldYellow、%boldGreen是不同的显示颜色
    View Code

    3.测试

    这里只展示spring boot 工程 使用logging的测试类 ,其他工程还需要单独配置 xml才可以使用读取application.properties ,我懒得弄,

    虽然也可以打印的控制台,但是无法生成文件

    package com.example.javabaisc.log;
    
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class LogTest {
    
        //    记录器 ,getClass()表示当前类
        Logger log = LoggerFactory.getLogger(getClass());
      //Logger log = LoggerFactory.getLogger(【用于让控制器可以定位当前类位置,可以指定如 LogTest.class】); @Test
    public void t() { //日志的级别; //由低到高 trace<debug<info<warn<error //可以调整输出的日志级别;日志就只会在这个级别之后的高级别生效 log.trace("trace级别的日志--11111"); log.debug("debug级别的日志--2222222"); //SpringBoot默认给我们使用的是info级别的,没有指定级别的就用SpringBoot默认规定的级别 log.info("info级别的日志--33333"); log.warn("warn级别的日志--44444444"); log.error("error级别的日志--5555555"); } }

    打印结果

    日志 文件内容

  • 相关阅读:
    线段树----hdoj 1754 I here it
    树状数组----poj 2352 stars
    莫队算法
    枚举+深搜----poj 3279 Fliptile
    java 10 -09的作业
    java 09 06 thread-同步代码块-同步方法
    java09-05 join_daemon
    java09 02 Thread-yield 放弃
    java 07 jar
    java 08 作业
  • 原文地址:https://www.cnblogs.com/c2g5201314/p/13139979.html
Copyright © 2011-2022 走看看