国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè)包含哪些內(nèi)容巨量算數(shù)數(shù)據(jù)分析入口

網(wǎng)站建設(shè)包含哪些內(nèi)容,巨量算數(shù)數(shù)據(jù)分析入口,wordpress robots.txt設(shè)置,建設(shè)網(wǎng)站一定要備案嗎日志系統(tǒng) java.util.logging (JUL) JDK1.4 開(kāi)始,通過(guò) java.util.logging 提供日志功能。雖然是官方自帶的log lib,JUL的使用確不廣泛。 JUL從JDK1.4 才開(kāi)始加入(2002年),當(dāng)時(shí)各種第三方log lib已經(jīng)被廣泛使用了JUL早期存在性能問(wèn)題&#x…

日志系統(tǒng)

java.util.logging (JUL)

JDK1.4 開(kāi)始,通過(guò) java.util.logging 提供日志功能。雖然是官方自帶的log libJUL的使用確不廣泛。

  1. JULJDK1.4 才開(kāi)始加入(2002年),當(dāng)時(shí)各種第三方log lib已經(jīng)被廣泛使用了
  2. JUL早期存在性能問(wèn)題,到JDK1.5上才有了不錯(cuò)的進(jìn)步,但現(xiàn)在和Logback/Log4j2相比還是有所不如
  3. JUL的功能不如Logback/Log4j2等完善,比如Output Handler就沒(méi)有Logback/Log4j2的豐富,有時(shí)候需要自己來(lái)繼承定制,又比如默認(rèn)沒(méi)有從ClassPath里加載配置文件的功能

Log4j

Log4japache 的一個(gè)開(kāi)源項(xiàng)目,創(chuàng)始人 Ceki Gulcu。Log4j 應(yīng)該說(shuō)是 Java 領(lǐng)域資格最老,應(yīng)用最廣的日志工具。Log4j 是高度可配置的,并可通過(guò)在運(yùn)行時(shí)的外部文件配置。它根據(jù)記錄的優(yōu)先級(jí)別,并提供機(jī)制,以指示記錄信息到許多的目的地,諸如:數(shù)據(jù)庫(kù),文件,控制臺(tái),UNIX 系統(tǒng)日志等。

Log4j 中有三個(gè)主要組成部分:loggers - 負(fù)責(zé)捕獲記錄信息。appenders - 負(fù)責(zé)發(fā)布日志信息,以不同的首選目的地。layouts - 負(fù)責(zé)格式化不同風(fēng)格的日志信息。

Log4j 的短板在于性能,在LogbackLog4j2 出來(lái)之后,Log4j的使用也減少了。

LogbackLogback

是由 log4j 創(chuàng)始人 Ceki Gulcu 設(shè)計(jì)的又一個(gè)開(kāi)源日志組件,是作為 Log4j 的繼承者來(lái)開(kāi)發(fā)的,提供了性能更好的實(shí)現(xiàn),異步 loggerFilter等更多的特性。logback 當(dāng)前分成三個(gè)模塊:logback-core、logback-classiclogback-access。

logback-core - 是其它兩個(gè)模塊的基礎(chǔ)模塊。logback-classic - 是 log4j 的一個(gè) 改良版本。此外 logback-classic 完整實(shí)現(xiàn) SLF4J API 使你可以很方便地更換成其它日志系統(tǒng)如 log4jJDK14 Logging。

logback-access - 訪問(wèn)模塊與 Servlet 容器集成提供通過(guò) Http 來(lái)訪問(wèn)日志的功能。

Log4j2

維護(hù) Log4j 的人為了性能又搞出了 Log4j2。Log4j2Log4j1.x 并不兼容,設(shè)計(jì)上很大程度上模仿了 SLF4J/Logback,性能上也獲得了很大的提升。Log4j2 也做了 Facade/Implementation 分離的設(shè)計(jì),分成了 log4j-apilog4j-core。

Log4j vs Logback vs Log4j2

按照官方的說(shuō)法,Log4j2 大大優(yōu)于 Log4jLogback。

那么,Log4j2 相比于先問(wèn)世的 Log4jLogback,它具有哪些優(yōu)勢(shì)呢?

  • Log4j2 旨在用作審計(jì)日志記錄框架。Log4j 1.xLogback 都會(huì)在重新配置時(shí)丟失事件。Log4j 2 不會(huì)。在 Logback 中,Appender 中的異常永遠(yuǎn)不會(huì)對(duì)應(yīng)用程序可見(jiàn)。在 Log4j 中,可以將 Appender 配置為允許異常滲透到應(yīng)用程序。

  • Log4j2 在多線(xiàn)程場(chǎng)景中,異步 Loggers 的吞吐量比 Log4j 1.xLogback 高 10 倍,延遲低幾個(gè)數(shù)量級(jí)。

  • Log4j2 對(duì)于獨(dú)立應(yīng)用程序是無(wú)垃圾的,對(duì)于穩(wěn)定狀態(tài)日志記錄期間的 Web 應(yīng)用程序來(lái)說(shuō)是低垃圾。這減少了垃圾收集器的壓力,并且可以提供更好的響應(yīng)時(shí)間性能。

  • Log4j2 使用插件系統(tǒng),通過(guò)添加新的 Appender、Filter、Layout、LookupPattern Converter,可以非常輕松地?cái)U(kuò)展框架,而無(wú)需對(duì) Log4j 進(jìn)行任何更改。

  • 由于插件系統(tǒng)配置更簡(jiǎn)單。配置中的條目不需要指定類(lèi)名。

  • 支持自定義日志等級(jí)。

  • 支持 lambda 表達(dá)式。

  • 支持消息對(duì)象。

  • Log4jLogbackLayout 返回的是字符串,而 Log4j2 返回的是二進(jìn)制數(shù)組,這使得它能被各種 Appender 使用。

  • Syslog Appender 支持 TCPUDP 并且支持 BSD 系統(tǒng)日志。

  • Log4j2 利用 Java5 并發(fā)特性,盡量小粒度的使用鎖,減少鎖的開(kāi)銷(xiāo)

日志門(mén)面

日志門(mén)面是對(duì)不同日志框架提供的一個(gè) API 封裝,可以在部署的時(shí)候不修改任何配置即可接入一種日志實(shí)現(xiàn)方案。

common-logging

common-loggingapache的一個(gè)開(kāi)源項(xiàng)目。也稱(chēng)Jakarta Commons Logging,縮寫(xiě) JCL。common-logging 的功能是提供日志功能的 API 接口,本身并不提供日志的具體實(shí)現(xiàn)(當(dāng)然,common-logging 內(nèi)部有一個(gè) Simple logger 的簡(jiǎn)單實(shí)現(xiàn),但是功能很弱,直接忽略),而是在運(yùn)行時(shí)動(dòng)態(tài)的綁定日志實(shí)現(xiàn)組件來(lái)工作(如 log4j、java.util.loggin)。

slf4j

全稱(chēng)為 Simple Logging Facade for Java,即 java 簡(jiǎn)單日志門(mén)面。類(lèi)似于 Common-Loggingslf4j 是對(duì)不同日志框架提供的一個(gè) API 封裝,可以在部署的時(shí)候不修改任何配置即可接入一種日志實(shí)現(xiàn)方案。但是,slf4j 在編譯時(shí)靜態(tài)綁定真正的 Log 庫(kù)。使用 SLF4J 時(shí),如果你需要使用某一種日志實(shí)現(xiàn),那么你必須選擇正確的 SLF4Jjar 包的集合(各種橋接包)

common-logging vs slf4j

slf4j 庫(kù)類(lèi)似于 Apache Common-Logging。但是,他在編譯時(shí)靜態(tài)綁定真正的日志庫(kù)。這點(diǎn)似乎很麻煩,其實(shí)也不過(guò)是導(dǎo)入橋接 jar 包而已。

slf4j 一大亮點(diǎn)是提供了更方便的日志記錄方式:

不需要使用logger.isDebugEnabled()來(lái)解決日志因?yàn)樽址唇赢a(chǎn)生的性能問(wèn)題。slf4j 的方式是使用{}作為字符串替換符,形式如下:

logger.debug("id: {}, name: {} ", id, name);

總結(jié) 使用 slf4j + Logback 可謂是目前最理想的日志解決方案了。

slf4j + Logback

添加依賴(lài)到 pom.xml 中即可。logback-classic-1.0.13.jar 會(huì)自動(dòng)將 slf4j-api-1.7.21.jarlogback-core-1.0.13.jar 也添加到你的項(xiàng)目中。

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.0.13</version>
</dependency>
<?xml version="1.0" encoding="UTF-8" ?><!-- logback中一共有5種有效級(jí)別,分別是TRACEDEBUG、INFO、WARNERROR,優(yōu)先級(jí)依次從低到高 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false"><property name="DIR_NAME" value="spring-helloworld"/><!-- 將記錄日志打印到控制臺(tái) --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><!-- RollingFileAppender begin --><appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 根據(jù)時(shí)間來(lái)制定滾動(dòng)策略 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${user.dir}/logs/${DIR_NAME}/all.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><!-- 根據(jù)文件大小來(lái)制定滾動(dòng)策略 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>30MB</maxFileSize></triggeringPolicy><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 根據(jù)時(shí)間來(lái)制定滾動(dòng)策略 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${user.dir}/logs/${DIR_NAME}/error.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><!-- 根據(jù)文件大小來(lái)制定滾動(dòng)策略 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>10MB</maxFileSize></triggeringPolicy><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 根據(jù)時(shí)間來(lái)制定滾動(dòng)策略 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${user.dir}/logs/${DIR_NAME}/warn.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><!-- 根據(jù)文件大小來(lái)制定滾動(dòng)策略 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>10MB</maxFileSize></triggeringPolicy><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>WARN</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 根據(jù)時(shí)間來(lái)制定滾動(dòng)策略 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${user.dir}/logs/${DIR_NAME}/info.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><!-- 根據(jù)文件大小來(lái)制定滾動(dòng)策略 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>10MB</maxFileSize></triggeringPolicy><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 根據(jù)時(shí)間來(lái)制定滾動(dòng)策略 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${user.dir}/logs/${DIR_NAME}/debug.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><!-- 根據(jù)文件大小來(lái)制定滾動(dòng)策略 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>10MB</maxFileSize></triggeringPolicy><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>DEBUG</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><appender name="TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 根據(jù)時(shí)間來(lái)制定滾動(dòng)策略 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${user.dir}/logs/${DIR_NAME}/trace.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><!-- 根據(jù)文件大小來(lái)制定滾動(dòng)策略 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>10MB</maxFileSize></triggeringPolicy><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>TRACE</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><appender name="SPRING" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 根據(jù)時(shí)間來(lái)制定滾動(dòng)策略 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${user.dir}/logs/${DIR_NAME}/springframework.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><!-- 根據(jù)文件大小來(lái)制定滾動(dòng)策略 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>10MB</maxFileSize></triggeringPolicy><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] [%-5p] %c{36}.%M - %m%n</pattern></encoder></appender><!-- RollingFileAppender end --><!-- logger begin --><!-- 本項(xiàng)目的日志記錄,分級(jí)打印 --><logger name="org.zp.notes.spring" level="TRACE" additivity="false"><appender-ref ref="STDOUT"/><appender-ref ref="ERROR"/><appender-ref ref="WARN"/><appender-ref ref="INFO"/><appender-ref ref="DEBUG"/><appender-ref ref="TRACE"/></logger><!-- SPRING框架日志 --><logger name="org.springframework" level="WARN" additivity="false"><appender-ref ref="SPRING"/></logger><root level="TRACE"><appender-ref ref="ALL"/></root><!-- logger end --></configuration>
http://m.aloenet.com.cn/news/37308.html

相關(guān)文章:

  • 服務(wù)器網(wǎng)站部署嘉興網(wǎng)絡(luò)推廣
  • 好創(chuàng)意的設(shè)計(jì)網(wǎng)站最大免費(fèi)廣告發(fā)布平臺(tái)
  • 找人做網(wǎng)站排名優(yōu)化山西seo排名廠家
  • 網(wǎng)站開(kāi)發(fā)的著作權(quán)和版權(quán)進(jìn)一步優(yōu)化落實(shí)
  • 教育網(wǎng)站賞析seo網(wǎng)站分析報(bào)告
  • 西安網(wǎng)站優(yōu)化百度seo推廣軟件
  • 英國(guó)有哪些做折扣的網(wǎng)站有哪些seo外包顧問(wèn)
  • 免費(fèi)發(fā)布招聘的網(wǎng)站愛(ài)站seo
  • html在wordpress中的作用刷關(guān)鍵詞優(yōu)化排名
  • 響應(yīng)式網(wǎng)站管理win7優(yōu)化軟件
  • 電子商務(wù)網(wǎng)站建設(shè)的一般步驟有重慶人力資源和社會(huì)保障網(wǎng)
  • wordpress的用戶(hù)名密碼網(wǎng)站優(yōu)化seo培
  • 郴州建設(shè)網(wǎng)站贛州網(wǎng)站seo
  • 杭州外貿(mào)網(wǎng)站制作網(wǎng)推資源渠道
  • 做網(wǎng)站用哪個(gè)office推廣普通話(huà)文字內(nèi)容
  • 類(lèi)似WordPress的Pythonseo網(wǎng)站優(yōu)化工具大全
  • 附近做app的公司重慶seo論壇
  • 網(wǎng)站建設(shè)經(jīng)費(fèi)立項(xiàng)報(bào)告網(wǎng)絡(luò)營(yíng)銷(xiāo)發(fā)展方案策劃書(shū)
  • 那個(gè)網(wǎng)站可以做視頻app制作的企業(yè)網(wǎng)站建設(shè)方案模板
  • 網(wǎng)站要交錢(qián)嗎電腦培訓(xùn)學(xué)校哪家好
  • 手機(jī)微網(wǎng)站怎么做的網(wǎng)絡(luò)軟文營(yíng)銷(xiāo)案例3篇
  • 西安網(wǎng)站建設(shè)公司云網(wǎng)北京網(wǎng)站優(yōu)化排名推廣
  • 張家港高端網(wǎng)站制作百度總部公司地址在哪里
  • 蘇州 網(wǎng)站 建設(shè) 公司微信營(yíng)銷(xiāo)模式有哪些
  • 做企業(yè)網(wǎng)站比較好的公司互動(dòng)營(yíng)銷(xiāo)案例都有哪些
  • 建筑工程網(wǎng)站源碼市場(chǎng)營(yíng)銷(xiāo)證書(shū)含金量
  • 天津高端品牌網(wǎng)站建設(shè)企業(yè)培訓(xùn)課程名稱(chēng)大全
  • 網(wǎng)站開(kāi)發(fā)畢業(yè)論文范文微博推廣方法有哪些
  • 自適應(yīng)網(wǎng)站什么做2022今天剛剛發(fā)生地震了
  • 哈爾濱住房和城鄉(xiāng)建設(shè)廳官方網(wǎng)站如何軟件網(wǎng)站優(yōu)化公司