導航:首頁 > 源碼編譯 > slf4j源碼介紹

slf4j源碼介紹

發布時間:2022-07-18 07:17:14

『壹』 sources.jar和.jar有什麼差別 比如:slf4j-jdk14-1.5.6-sources.jar和slf4j-jdk14-1.5.6.jar

-sources是源碼

『貳』 求shop++的源代碼

主要庫
spring-aop-4.0.9.RELEASE
spring-beans-4.0.9.RELEASE
spring-context-4.0.9.RELEASE
spring-context-support-4.0.9.RELEASE
spring-core-4.0.9.RELEASE
spring-expression-4.0.9.RELEASE
spring-jdbc-4.0.9.RELEASE
spring-orm-4.0.9.RELEASE
spring-test-4.0.9.RELEASE
spring-tx-4.0.9.RELEASE
spring-web-4.0.9.RELEASE
spring-webmvc-4.0.9.RELEASE
hibernate-core-4.3.9.Final
hibernate-jpa-2.1-api-1.0.0.Final
hibernate-entitymanager-4.3.9.Final
hibernate-validator-5.1.3.Final
hibernate-search-orm-4.5.3.Final
lucene-core-3.6.2
freemarker-2.3.22
ehcache-core-2.6.10
ehcache-web-2.0.4
shiro-core-1.2.3
shiro-web-1.2.3
c3p0-0.9.2.1
commons-lang-2.6
commons-beanutils-1.9.2
commons-collections-3.2.1
commons-io-2.4
commons-net-3.3
commons-fileupload-1.3.1
commons-codec-1.10
commons-email-1.3.3
commons-compress-1.9
junit-4.10
httpclient-4.3.5
httpcore-4.3.2
slf4j-api-1.7.7
jcl-over-slf4j-1.7.7
logback-core-1.1.2
logback-classic-1.1.2
dom4j-1.6.1
jackson-core-2.4.3
jackson-databind-2.4.3
jackson-annotations-2.4.3
IKAnalyzer2012_u6

『叄』 slf4j的介紹

SLF4J,即簡單日誌門面(Simple Logging Facade for java),不是具體的日誌解決方案,它只服務於各種各樣的日誌系統。按照官方的說法,SLF4J是一個用於日誌系統的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日誌系統。

『肆』 如何配置SLF4J不同的日誌實現

SLF4J是一套簡單的日誌外觀模式的Java API,幫助在項目部署時對接各種日誌實現。

LogBack在運行時使用JMX幫助修改日誌配置,在生產狀態下無需重啟應用程序。


SLF4J是簡單的日誌外觀模式框架,抽象了各種日誌框架例如Logback、Log4j、Commons-logging和JDK自帶的logging實現介面。

它使得用戶可以在部署時使用自己想要的日誌框架。SLF4J是輕量級的,在性能方面幾乎是零消耗的。

SLF4J沒有替代任何日誌框架,它僅僅是標准日誌框架的外觀模式。

如果在類路徑下除了SLF4J再沒有任何日誌框架,那麼默認狀態是在控制台輸出日誌。


Logback是Log4j的改進版本,而且原生支持SLF4J(因為是同一作者開發的),因此從其它日誌框架如Log4j或JDK的logging遷移到Logback是完全可行的。



由於Logback原生支持SLF4J,因此Logback+SLF4J的組合是日誌框架的最佳選擇,比SLF4J+其它日誌框架的組合要快一些。而且Logback的配置可以是XML或Groovy代碼。



注意一個重要的特性,Logback通過JMX修改日誌配置(比如日誌級別從Debug調整到INFO),可以從JMX控制台直接操作,無需重啟應用程序。

『伍』 當在類上寫了一個@Slf4j註解後,類中為何就有了一個log對象源碼是怎麼實現的

這個實現,要分以下幾個步驟。

  1. 你要知道:@(註解)

  2. 你要知道:代理

知道這兩個,大致的思路就會有了。java代碼運行到main方法,會掃描所有的類。通過反射查詢到【有@slf4j的類】。然後通過代理,來增強有【有@slf4j的類】(即,在代理類中,創建log對象)

『陸』 哪個版本springboot依賴slf4j-api 1.8.0

在開發中,我們經常使用System.out.println()來列印一些信息,但是這樣不好,因為大量的使用System.out會增加資源的消耗。我們實際項目中使用的是slf4j的logback來輸出日誌,效率挺高的,SpringBoot提供了一套日誌系統,logback是最優的選擇。
.slf4j介紹
引用網路里的一段話:
SLF4J,即簡單日誌門面(SimpleLoggingFacadeforJava),不是具體的日誌解決方案,它只服務於各種各樣的日誌系統。按照官方的說法,SLF4J是一個用於日誌系統的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日誌系統。
這段的大概意思是:你只需要按統一的方式寫記錄日誌的代碼,而無需關心日誌是通過哪個日誌系統,以什麼風格輸出的。因為它們取決於部署項目時綁定的日誌系統。例如,在項目中使用了slf4j記錄日誌,並且綁定了log4j(即導入相應的依賴),則日誌會以log4j的風格輸出;後期需要改為以logback的風格輸出日誌,只需要將log4j替換成logback即可,不用修改項目中的代碼。這對於第三方組件的引入的不同日誌系統來說幾乎零學習成本,況且它的優點不僅僅這一個而已,還有簡潔的佔位符的使用和日誌級別的判斷。
正因為sfl4j有如此多的優點,阿里巴巴已經將slf4j作為他們的日誌框架了。在《阿里巴巴Java開發手冊(正式版)》中,日誌規約一項第一條就強制要求使用slf4j:
1.【強制】應用中不可直接使用日誌系統(Log4j、Logback)中的API,而應依賴使用日誌框架SLF4J中的API,使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。
「強制」兩個字體現出了slf4j的優勢,所以建議在實際項目中,使用slf4j作為自己的日誌框架。使用slf4j記錄日誌非常簡單,直接使用LoggerFactory創建即可。

『柒』 如何編譯Flume-NG源碼之最新1.5.2版本

方法

源碼下載
http://www.neoye.com/3446.html apache-flume-1.5.2-src.tar.gz
解壓至C盤根目錄
建議放到C盤根目錄中,測試時我是放到這里,其它目錄不保證可以順利通過,可參考測試。
運行mvn
進入c:\apache-flume-1.5.2目錄,運行mvn install -DskipTests -Dtar注意:網上有其它參考材料說要先將注釋掉hbase和hadoop-test相關的依賴,我沒這樣做,沒問題。
可能根據環境不同有差異。不過大家遇到與hbase和hadoop-test相關的錯誤可以進行參考更正。
部分代碼參考
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>${hbase.version}</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
<version>${hadoop.version}</version>
</dependency>
典型問題1處理[重點]
1、error reading error in opening zip file
[ERROR] error: error reading
/org/elasticsearch/elasticsearch/0.90.1/elasticsearch-0.90.1.jar;
error in opening zip file
[ERROR] -> [Help 1]
出現這個錯誤可能是已經下載的這個jar存在問題。到本地庫中找到對應的jar所在位置,然後將其刪除,重新運行mvn命令可解決。以上這個錯誤不一定是elasticsearch的jar找不到,其他jar也可能出現這個問題。
典型問題2處理[重點]
flume-ng-morphline-solr-sink出現問題,對應的kite-morphline沒有找到依賴。要使用這個flume-ng-morphline-solr-sink做些文章的,所以這里出問題必須解決。
[ERROR] Failed to execute goal on project flume-ng-morphline-solr-sink: Could no
t resolve dependencies for project org.apache.flume.flume-ng-sinks:flume-ng-morp
hline-solr-sink:jar:1.5.2: Failed to collect dependencies for [org.apache.flume:
flume-ng-core:jar:1.5.2 (compile), org.slf4j:slf4j-api:jar:1.6.1 (compile), org.
kitesdk:kite-morphlines-all:pom:0.12.0 (compile?), org.slf4j:jcl-over-slf4j:jar:
1.6.1 (provided), org.apache.solr:solr-test-framework:jar:4.3.0 (test), org.kite
sdk:kite-morphlines-solr-core:jar:tests:0.12.0 (test), junit:junit:jar:4.10 (tes
t)]: Failed to read artifact descriptor for org.kitesdk:kite-morphlines-all:pom:
0.12.0: Could not transfer artifact org.kitesdk:kite-morphlines-all:pom:0.12.0 f
rom/to cdh.repo (https://repository.cloudera.com/artifactory/cloudera-repos): Co
nnection to https://repository.cloudera.com refused: Connection timed out: conne
ct -> [Help 1]
提示的錯誤是連接cloudera的中央庫超時了,看似是網路問題。其實解決了網路問題還有另外一個重大問題就是版本對應不上。查看了一下flume-ng-morphline-solr-sink的pom.xml文件,對應查找的kite.version是0.12.0版本。但其實cloudera的中央庫上也沒有這個版本了。所以解決辦法是: A、將kite.version的版本改成0.15.0.修改進入源碼根目錄找到pom.xml文件,找到<kite.version>0.15.0</kite.version>將0.12.0修改成0.15.0 B、找到<dependenciesManagement>標簽,將下面代碼插入到dependency中。
<dependency>
<groupId>org.kitesdk</groupId>
<artifactId>kite-morphlines-all</artifactId>
<version>${kite.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</exclusion>
</exclusions>
<type>pom</type>
<optional>true</optional>
</dependency>
C:\apache-flume-1.5.2-src\flume-ng-sinks\flume-ng-morphline-solr-sink目錄,打開pom.xml文件,將所有${kite.version}替換成0.15.0。上一步的目的是如果工程引用了org.kitesdk的話,則不使用這個版本。可以自定義其引用的版本。我在實際應用中就遇到了這兩個主要的問題。當然其中還有一些主要是repository連接不上的問題(公司比較爛,網路有限制)。想各種辦法從網上先down下來再上傳到私服解決。最後提示」Build Success」編譯成功了,見下圖。

編譯成eclipse工程
mvn eclipse:eclipse至此,使用eclipse導入工程即可進行開發了。
我這里還遇到了兩個flume-dataset-sink的單體測試中有一個方法編譯不過去的問題。因為我沒用到這個sink所以也沒去解決。另一個問題是可能在install時可能會遇到Missing artifact jdk.tools:jdk.tools:jar:1.6的問題。
解決辦法:在flume-ng-morphline-solr-sink的pom.xml文件中添加一個依賴。
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.7</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
至於jdk的版本和系統路徑根據實際的開發環境的環境變數而定,其他都沒問題。

『捌』 GitHub上面有哪些經典的java框架源碼

閱讀全文

與slf4j源碼介紹相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:573
python員工信息登記表 瀏覽:373
高中美術pdf 瀏覽:156
java實現排列 瀏覽:510
javavector的用法 瀏覽:978
osi實現加密的三層 瀏覽:228
大眾寶來原廠中控如何安裝app 瀏覽:909
linux內核根文件系統 瀏覽:238
3d的命令面板不見了 瀏覽:520
武漢理工大學伺服器ip地址 瀏覽:143
亞馬遜雲伺服器登錄 瀏覽:519
安卓手機如何進行文件處理 瀏覽:67
mysql執行系統命令 瀏覽:925
php支持curlhttps 瀏覽:141
新預演算法責任 瀏覽:441
伺服器如何處理5萬人同時在線 瀏覽:246
哈夫曼編碼數據壓縮 瀏覽:421
鎖定伺服器是什麼意思 瀏覽:382
場景檢測演算法 瀏覽:615
解壓手機軟體觸屏 瀏覽:345