亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決slf4j 和 logback-classic遇到的坑

 更新時間:2021年07月30日 09:58:00   作者:東方柏  
這篇文章主要介紹了解決slf4j 和 logback-classic遇到的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

slf4j 和 logback-classic遇到的坑

以前一直不注意日志的打印,最近項目需求需要用日志記錄用時性能,集成日志時遇到的問題記錄下。

問題一:服務器啟動時提示未找到slf4j的實現(xiàn)類

此時一定是沒有在classpath中找到jar包,啟動時會有相應的警告提示。需要三個包:slf4j-api(接口),logback-classic(最優(yōu)實現(xiàn)),logback-core(核心)。加入的位置可能存在兩種,一種是tomcat需要,需要加在tomcat的lib下,還有一種是加在項目的classpath下。

問題二:不生成文件或者生成的文件路徑不對

不生成文件存在一個原因,logback.xml沒有配置寫入到文件(默認配置文件的順序是logback-test.xml, logback.groovy, logback.xml),注意如果是maven項目,不要把src/test/resources中的logback-test.xml發(fā)到環(huán)境中,因為優(yōu)先級最高。關于生成的文件路不對,解釋是正確的配置

<property name="LOG_HOME" value="servers/AdminServer/logs"/>

文件位置是eclipse的根目錄,如果配置是

<property name="LOG_HOME" value="/servers/AdminServer/logs"/>

則文件位置是eclipse所在盤符的根目錄,如D盤。

slf4j與logback的結合使用

一、logback的介紹

Logback是由log4j創(chuàng)始人設計的又一個開源日志組件。logback當前分成三個模塊:logback-core,logback- classic和logback-access。logback-core是其它兩個模塊的基礎模塊。logback-classic是log4j的一個 改良版本。

此外logback-classic完整實現(xiàn)SLF4J API使你可以很方便地更換成其它日志系統(tǒng)如log4j或JDK14 Logging。logback-access訪問模塊與Servlet容器集成提供通過Http來訪問日志的功能。 Logback是要與SLF4J結合起來用兩個組件的官方網(wǎng)站如下:

logback的官方網(wǎng)站: http://logback.qos.ch

SLF4J的官方網(wǎng)站:http://www.slf4j.org

二、組件

Logback 分為三個模塊:logback-core,logback-classic,logback-access。其中l(wèi)ogback-core 是核心;logback-classic 改善了 log4j,且自身實現(xiàn)了 SLF4J API,所以即使用 Logback 你仍然可以使用其他的日志實現(xiàn),如原始的 Log4J,java.util.logging 等;logback-access 讓你方便的訪問日志信息,如通過 http 的方式。

三、引用配置

1、 pom.xml文件:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.12</version> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>jcl-over-slf4j</artifactId> 
    <version>1.7.12</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-core</artifactId> 
    <version>1.1.3</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.1.3</version> 
</dependency>

2、logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <jmxConfigurator />
    <!-- 控制臺輸出日志 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
                %msg%n</pattern>
        </layout>
    </appender>
    <!-- 文件輸出日志 (文件大小策略進行文件輸出,超過指定大小對文件備份) -->
    <appender name="FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>xxxx.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <FileNamePattern>xxxx.log.%i.bak</FileNamePattern>
            <MinIndex>1</MinIndex>
            <MaxIndex>12</MaxIndex>
        </rollingPolicy>
        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>100MB</MaxFileSize>
        </triggeringPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
                %msg%n</Pattern>
        </layout>
    </appender>
    <!--這里指定logger name 是為jmx設置日志級別做鋪墊 -->
    <logger name="com.xxx.xxx">
        <level value="INFO" />
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </logger>
</configuration>

四、示例代碼

import org.slf4j.Logger;
import org.slf4j.LoggerFactory; 
class Bar { 
    Logger logger = LoggerFactory.getLogger(Bar.class); 
    public void doIt() {
        logger.debug("doing my job");
    }
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MyBatis中#{}和${}的區(qū)別詳解

    MyBatis中#{}和${}的區(qū)別詳解

    mybatis和ibatis總體來講都差不多的。下面小編給大家探討下mybatis中#{}和${}的區(qū)別,感興趣的朋友一起學習吧
    2016-08-08
  • Java線程隊列LinkedBlockingQueue的使用

    Java線程隊列LinkedBlockingQueue的使用

    本文主要介紹了Java線程隊列LinkedBlockingQueue的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • SpringBoot全局Controller返回值格式統(tǒng)一

    SpringBoot全局Controller返回值格式統(tǒng)一

    本文主要介紹了SpringBoot全局Controller返回值格式統(tǒng)一,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 淺談Java中的參數(shù)傳遞問題

    淺談Java中的參數(shù)傳遞問題

    這篇文章主要介紹了Java中的參數(shù)傳遞問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Struts2 漏洞分析及如何提前預防

    Struts2 漏洞分析及如何提前預防

    2016年4月26日,Struts2發(fā)布一份安全公告,CVE編號 CVE-2016-3081。這是自2012年Struts2命令執(zhí)行漏洞大規(guī)模爆發(fā)之后,該服務時隔四年再次爆發(fā)大規(guī)模漏洞。該漏洞也是今年目前爆出的最嚴重安全漏洞。本文分析了漏洞的原理危害影響防護等內容。
    2016-05-05
  • 詳解Java多線程與并發(fā)

    詳解Java多線程與并發(fā)

    多線程是一個進程在執(zhí)行過程中產(chǎn)生多個更小的程序單元,這些更小的單元稱為線程,這些線程可以同時存在,同時運行,一個進程可能包含多個同時執(zhí)行的線程。多線程是實現(xiàn)并發(fā)機制的一種有效手段。進程和線程一樣,都是實現(xiàn)并發(fā)的一個基本單位。
    2021-06-06
  • Java concurrency線程池之Callable和Future_動力節(jié)點Java學院整理

    Java concurrency線程池之Callable和Future_動力節(jié)點Java學院整理

    這篇文章主要為大家詳細介紹了Java concurrency線程池之Callable和Future,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Spring MVC傳遞接收參數(shù)方式小結

    Spring MVC傳遞接收參數(shù)方式小結

    大家在開發(fā)中經(jīng)常會用到Spring MVC Controller來接收請求參數(shù),主要常用的接收方式就是通過實體對象以及形參等方式、有些用于GET請求,有些用于POST請求,有些用于兩者,下面介紹幾種常見的Spring MVC傳遞接收參數(shù)的方式
    2021-11-11
  • Java中i++的一些問題總結

    Java中i++的一些問題總結

    這篇文章主要給大家介紹了關于Java中i++的一些問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Velocity基本語法介紹

    Velocity基本語法介紹

    以下是對Velocity的基本語法進行了深入的介紹。需要的朋友可以過來參考下
    2013-08-08

最新評論