SpringBoot之日志记录 SLF4J(H)详解编程语言

在开发中打印内容,使用 System.out.println() 和 Log4j 应当是人人皆知的方法了。
其实在开发中我们不建议使用 System.out 因为大量的使用 System.out 会增加资源的消耗。
而Log4j 更为灵活在性能上也相比 System.out 要高,我们可以配置输出级别,可以指定多个日志文件分别记录不同的日志。
使用 System.out 是在当前线程执行的,写入文件也是写入完毕后才继续执行下面的程序。而使用Log工具不但可以控制日志是否输出,怎么输出,它的处理机制也是通知写日志,继续执行后面的代码不必等日志写完。
如非必要,建议大家不要使用控制台输出,因为控制台输出没有优先级会显得输出太乱。

个人推荐使用 SLF4J(Simple Logging Facade For Java)的logback来输出日志,其比log4j 要好,因为他效率更高。

日志配置

方法一(logback.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 
    <logger name="cn.wuyang.springboot" level="TRACE" /> <!-- 你的路径和日志级别 --> 
</configuration>

这里写图片描述

方法二(application.properties)

logging.level.org.springframework.web=INFO 
logging.level.cn.wuyang.springboot=TRACE

这里写图片描述

方法三(logback-spring.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/base.xml" /> 
    <logger name="org.springframework.web" level="INFO"/> 
    <logger name="cn.wuyang.springboot" level="TRACE" /> 
 
    <springProfile name="dev"> 
        <logger name="cn.wuyang.springboot" level="DEBUG" /> 
    </springProfile> 
 
    <springProfile name="staging"> 
        <logger name="cn.wuyang.springboot" level="INFO" /> 
    </springProfile> 
 
</configuration>

这里写图片描述

日志本地落盘和日志格式

ConsoleAppender

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
        <encoder> 
            <pattern>%d %p (%file:%line/)  - %m%n</pattern> 
            <charset>UTF-8</charset> 
        </encoder> 
    </appender>

RollingFileAppender

<appender name="baselog" 
        class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <File>log/base.log</File> 
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
            <fileNamePattern>log/base.log.%d.%i</fileNamePattern> 
            <timeBasedFileNamingAndTriggeringPolicy 
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
                <!-- or whenever the file size reaches 64 MB --> 
                <maxFileSize>64 MB</maxFileSize> 
            </timeBasedFileNamingAndTriggeringPolicy> 
        </rollingPolicy> 
        <encoder> 
            <pattern> 
                %d %p (%file:%line/)- %m%n 
            </pattern> 
            <charset>UTF-8</charset> <!-- 此处设置字符集 --> 
        </encoder> 
    </appender>

logback.xml

其中包含2中方式调用

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <!--定义 start  --> 
    <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, --> 
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
        <encoder> 
            <pattern>%d %p (%file:%line/)  - %m%n</pattern> 
            <charset>UTF-8</charset> 
        </encoder> 
    </appender> 
    <appender name="baselog" 
        class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <File>log/base.log</File> 
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
            <fileNamePattern>log/base.log.%d.%i</fileNamePattern> 
            <timeBasedFileNamingAndTriggeringPolicy 
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
                <!-- or whenever the file size reaches 64 MB --> 
                <maxFileSize>64 MB</maxFileSize> 
            </timeBasedFileNamingAndTriggeringPolicy> 
        </rollingPolicy> 
        <encoder> 
            <pattern> 
                %d %p (%file:%line/)- %m%n 
            </pattern> 
            <charset>UTF-8</charset> <!-- 此处设置字符集 --> 
        </encoder> 
    </appender> 
 
    <!--定义 end  --> 
 
    <!-- 1.默认日志格式并写入文件 --> 
     <include resource="org/springframework/boot/logging/logback/base.xml"/> 
    <logger name="cn.wuyang.springboot" level="TRACE" > 
        <appender-ref ref="baselog" /> 
    </logger> 
 
 
    <!-- 2.调用日志格式并写入文件 --> 
    <!-- <root level="INFO"> 
        <appender-ref ref="STDOUT" /> 
    </root> 
    <logger name="cn.wuyang.springboot" level="TRACE" > 
        <appender-ref ref="baselog" /> 
    </logger> --> 
</configuration>

这里写图片描述

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/11259.html

(0)
上一篇 2021年7月19日 10:49
下一篇 2021年7月19日 10:49

相关推荐

发表回复

登录后才能评论