SpringBoot之日誌記錄 SLF4J(H)

在開發中打印內容,使用 System.out.println() 和 Log4j 應當是人人皆知的方法了。
其實在開發中咱們不建議使用 System.out 由於大量的使用 System.out 會增長資源的消耗。
而Log4j 更爲靈活在性能上也相比 System.out 要高,咱們能夠配置輸出級別,能夠指定多個日誌文件分別記錄不一樣的日誌。
使用 System.out 是在當前線程執行的,寫入文件也是寫入完畢後才繼續執行下面的程序。而使用Log工具不但能夠控制日誌是否輸出,怎麼輸出,它的處理機制也是通知寫日誌,繼續執行後面的代碼沒必要等日誌寫完。
如非必要,建議你們不要使用控制檯輸出,由於控制檯輸出沒有優先級會顯得輸出太亂。web

我的推薦使用 SLF4J(Simple Logging Facade For Java)的logback來輸出日誌,其比log4j 要好,由於他效率更高。spring

日誌配置springboot

方法一(logback.xml)app

<?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>

日誌本地落盤和日誌格式spa

ConsoleAppender.net

<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>

文章來源:http://blog.csdn.net/itwuyang...

相關文章
相關標籤/搜索