A New Start

springBoot日志输出

一、默认形式

    ① 日志级别有6个,从小到大为(一般使用中间4种):TRACE < DEBUG < INFO < WARN < ERROR < FATAL。

    ② springBoot 默认的日志级别为 INFO(即INFO、WARN、ERROR),并且在 spring-boot-starter 中已经包含了 spring-boot-starter-logging 日志框架(默认为 Logback)。

    ③ 默认使用方式为:private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);

        logger.info("test log");

    ④ 默认输出到控制台。

    ⑤ 默认使用 src/main/resources 路径下的日志配置文件,且要求命名规范:推荐优先使用带有 -spring 的文件名作为你的日志配置,如使用logback-spring.xml

二、自定义化

    ① 可以指定日志的配置文件和日志的输出路径

        #Logging Config

        #日志文件的配置

        logging.config=classpath:logconfig.xml

        #日志文件的存放路径

        logging.path=/root/crmLogs

    ② 如果使用了 lombok,则使用方式为:

        类上增加注解:@Log4j(或者@Slf4j等),注意要引用 import lombok.extern.log4j.Log4j;

        然后直接打印日志,可以使用占位符:log.info("test info,name:{}", name);

三、配置文件说明

    ① 根节点<configuration>下面有5个子节点:

        <root>、<contextName>、<property>、<appender>、<loger>

    ② 根节点<configuration>属性:

        scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。

        scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。

        debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

    ③ root 节点:

        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。

        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。 

        默认是DEBUG。 

        可以包含零个或多个元素,标识哪个appender将会添加到这个loger。

    ④ contextName 节点(此节点一般不使用):

        设置上下文名称,默认上下文名称为“default”。

        如:<contextName>logback</contextName>

        需要使用的地方如此使用:%contextName

    ⑤ property 节点:

        设置自定义变量,通过“${}”来使用变量。

        <property name="logback.appname" value="app"/>

    ⑥ appender 节点:

        很重要的节点,appender 用来格式化日志输出节点,有俩个属性 name 和 class,class 用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。

        详细说明见后面的 Demo,注释比较详细。

        备注:

            一般控制台输出使用layout,文件输出使用encoder

            %d{HH: mm:ss.SSS}——日志输出时间

            %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用

            %-5level——日志级别,并且使用5个字符靠左对齐

            %logger{36}——日志输出者的名字

            %msg——日志消息

            %n——平台的换行符 

    ⑦ loger节点:

        <loger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。<loger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。

            name:用来指定受此loger约束的某一个包或者具体的某一个类。

            level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前loger将会继承上级的级别。

            addtivity:是否向上级loger传递打印信息。默认是true。

        如下两 Demo:

    ⑧ 另,多环境配置:

        application 中配置:spring.profiles.active=test

四、配置文件 Demo

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注