日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

重新登录:重新登录

發(fā)布時(shí)間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重新登录:重新登录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
嗨,我再次回到日志中來,這是任何應(yīng)用程序設(shè)計(jì)和開發(fā)的固有部分。 我是堅(jiān)強(qiáng)的基礎(chǔ)知識(shí)的忠實(shí)擁護(hù)者,在我的拙見中,日志記錄是任何企業(yè)級(jí)應(yīng)用程序中經(jīng)常被忽略但基本的關(guān)鍵要素之一。

我已經(jīng)寫在此之前這里 。 為了理解當(dāng)前文章,閱讀本書并不是強(qiáng)制性的,但可以粗略地看一下它,以設(shè)置本文的上下文。

在第一篇文章中,我介紹了日志記錄作為無所不在的System.out.println()的一種高收益,低成本的替代方法,所有Java人士都非常喜歡它。 我在那篇文章中使用過log4j 。 Log4j是一個(gè)可靠的框架,并兌現(xiàn)了承諾。 在使用它的所有年份中,它從未讓我失望。 我可以全心全意地推薦它。 但是,話雖如此,也很少有替代品,這些替代品在市場(chǎng)上已經(jīng)存在了一段時(shí)間。我很高興地說,其中至少有一個(gè)似乎在挑戰(zhàn)自己的地盤log4j。 我說的是Logback 。 當(dāng)然,這并不是一個(gè)新手,這就是我建議您從企業(yè)級(jí)應(yīng)用程序開始考慮的原因之一。 快速瀏覽一下Maven Central ,發(fā)現(xiàn)第一版發(fā)布于2006年。在2006年至2012年6月8日之間,也就是最新版本推向Maven Central時(shí),已經(jīng)有46個(gè)版本。 將此與log4j進(jìn)行比較。 第一個(gè)版本于2005年在Maven Central推出,最后一個(gè)版本于2012年5月26日發(fā)布,在這些版本之間共有14個(gè)不同的版本。 我并不是要使用這些數(shù)據(jù)來比較這兩個(gè)框架。 唯一的目的是向讀者保證Logback已經(jīng)存在了很長(zhǎng)時(shí)間,并且已經(jīng)足夠引起人們的重視。 在身邊是一回事,留下自己的印記是不同的。 就雄心和意圖而言,Logback清楚地表明它打算成為log4j的后繼者-并在其主頁(yè)上明確表示。 當(dāng)然,Logback聲稱它比Log4j具有詳盡的功能/優(yōu)點(diǎn)列表。 您可以在此鏈接上閱讀有關(guān)它們的信息。 就是這樣。 本文的重點(diǎn)是,我建議在設(shè)計(jì)和開發(fā)基于企業(yè)級(jí)Java的應(yīng)用程序時(shí),應(yīng)更加仔細(xì)地記錄日志,并考慮使用Logback 。 我希望現(xiàn)在有一些觀眾愿意大聲疾呼,激發(fā)他們最喜歡的編輯器,并選擇Logback試一試。 如果您是其中之一,那么您和我有一些共同點(diǎn)。 您可能想繼續(xù)閱讀。 Logback承諾的第一件事就是更快的實(shí)現(xiàn)(在此鏈接處 )。 真? 我想核實(shí)這一說法。 我首先使用Maven創(chuàng)建一個(gè)香草Java應(yīng)用程序。

檔案:MavenCommands.bat

call mvn archetype:create ^-DarchetypeGroupId=org.apache.maven.archetypes ^-DgroupId=org.academy ^-DartifactId=logger

不幸的是,它已經(jīng)預(yù)裝了JUnit3。我設(shè)置了JUnit 4,還添加了Contiperf,這樣我可以多次運(yùn)行測(cè)試-如果要檢查性能,這將很方便。

文件:/logger/pom.xml

[...]UTF-84.102.2.0[...] [...]junitjunit${junit.version}testorg.databenecontiperf${contiperf.version}test

另外,我想顯式控制用于編譯和執(zhí)行代碼的Java版本。

文件:/logger/pom.xml

[...]2.0.21.7[...]org.apache.maven.pluginsmaven-compiler-plugin${maven-compiler-plugin.version}${java.version} ${java.version}

最后配置–暫時(shí)。 隨心所欲地運(yùn)行單元測(cè)試。

文件:/logger/pom.xml

[...]2.12[...]org.apache.maven.pluginsmaven-surefire-plugin${maven-surefire-plugin.version}org.apache.maven.surefiresurefire-junit47${maven-surefire-plugin.version}-XX:-UseSplitVerifier

請(qǐng)注意,我竭盡全力將所有這些依賴項(xiàng)及其版本添加到本文中,只是為了確保您自己嘗試一下,您確切知道測(cè)試的軟件配置是什么。

現(xiàn)在,讓我們最后添加單元測(cè)試。

文件:/logger/src/test/java/org/academy/AppTest.java

public class AppTest { private final static Logger logger = LoggerFactory .getLogger(AppTest.class); @Rule public ContiPerfRule i = new ContiPerfRule(); @Test @PerfTest(invocations = 10, threads = 1) @Required(max = 1200, average = 1000) public void test() { for(int i = 0; i<10000 ; i++){ logger.debug("Hello {}", "world."); } } }

因此,我們?cè)趩卧獪y(cè)試中使用了logger,但未添加logger的實(shí)現(xiàn)。 我打算做的是一個(gè)接一個(gè)地添加log4j(帶有slf4j)和logback(帶有slf4j的固有支持),并多次運(yùn)行此簡(jiǎn)單測(cè)試以比較性能。

要添加log4j,我使用了此設(shè)置。

文件:/logger/pom.xml

org.slf4jslf4j-api${slf4j.version}org.slf4jjcl-over-slf4j${slf4j.version}runtimeorg.slf4jslf4j-log4j12${slf4j.version}runtime

對(duì)于登錄,我使用了此設(shè)置。

文件:/logger/pom.xml

ch.qos.logbacklogback-classic${logback.version}

具有以下版本。

文件:/logger/pom.xml

1.6.11.0.6

為了使這兩個(gè)記錄器框架中的任何一個(gè)實(shí)際記錄任何內(nèi)容,您必須添加一個(gè)文件,告訴記錄器要記錄什么以及在何處。

文件:src / main / resources / log4j.properties

# Set root logger level to DEBUG and its only appender to A1. log4j.rootLogger=DEBUG, A1# configure A1 to spit out data in console log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 最后,是關(guān)鍵時(shí)刻。 我對(duì)每個(gè)框架(即logback和log4j)進(jìn)行了三次測(cè)試。 本質(zhì)上,我在每次測(cè)試中將字符串log.debug()進(jìn)行1000,000次并計(jì)時(shí)。 這就是最終數(shù)字出來的方式。 構(gòu)架 第一輪 第二次 第三輪
退回 0.375秒 0.375秒 0.406秒
Log4j 0.454秒 0.453秒 0.454秒
就這個(gè)小實(shí)驗(yàn)而言,Logback的執(zhí)行速度顯然比Log4j快。 當(dāng)然,這是過于簡(jiǎn)單的實(shí)驗(yàn),并且尚未考慮許多有效方案。 例如,我們還沒有真正使用vanilla log4j。 我們已經(jīng)將log4j與slf4j API結(jié)合使用,這不是完全一樣的。 同樣,更快不是唯一的考慮因素。 Log4j異步工作( 在此處和此處閱讀),而據(jù)我所知,Logback并非如此。 Logback具有Log4j沒有的許多漂亮功能。 因此,孤立地看這小小的代碼并不能真正證明任何東西。 如果有的話,它使我回到了我提出的第一點(diǎn)–如果您正在設(shè)計(jì)/編碼基于Java的企業(yè)級(jí)應(yīng)用程序,則Logback具有很大的潛力,值得一看。 這就是本文的全部?jī)?nèi)容。 快樂的編碼。 想繼續(xù)讀嗎? 我可以建議... 本系列的第一篇文章。 應(yīng)用程序日志記錄的10個(gè)技巧。 如何輕松排除公共日志 關(guān)于提高NOT日志記錄性能的一個(gè)不錯(cuò)的技巧。

參考:在Tech for Enterprise博客上,從我們的JCG合作伙伴 Partho 重新獲得了日志記錄 。


翻譯自: https://www.javacodegeeks.com/2012/07/logback-logging-revisited.html

總結(jié)

以上是生活随笔為你收集整理的重新登录:重新登录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。