SpringBoot之日志记录 SLF4J(H)

来源:互联网 发布:淘宝客服kpi考核内容 编辑:程序博客网 时间:2024/05/29 11:29

在开发中打印内容,使用 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=INFOlogging.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>




麦枫中国软件用户供稿www.mfsun.com




原创粉丝点击