Log4j有三個主要的組件:Loggers(記錄器),Appenders (輸出源)和Layouts(布局)。這里可簡單理解為日志類別,日志要輸出的地方和日志以何種形式輸出。綜合使用這三個組件可以輕松地記錄信息的類型和級別,并可以在運行時控制日志輸出的樣式和位置。
核心提示:log4j有兩種配置方法,大家熟知的是properties文件但是最近的項目實施中,每次去用戶那里裝系統,都要苦惱于log文件放在不同位置,要改property文件就要重打jar包,麻煩的緊。而如果采用xml配置的方法,直接放在WEB-INFO下,要修改路徑,很方便。查了些資log4j有兩種配置方法,大家熟知的是properties文件但是最近的項目實施中,每次去用戶那里裝系統,都要苦惱于log文件放在不同位置,要改property文件就要重打jar包,麻煩的緊。而如果采用xml配置的方法,直接放在WEB-INFO下,要修改路徑,很方便。
第一步:配置log4j.properties在src目錄下建立log4j.properties文件,做如下配置
實現邏輯:通過log4j搭建一個日志服務器,將客戶端的log發送到服務端,并存放到指定的文件中,使用logstash對其進行監控,通過elasticsearch對其創建索引.
本章目標:掌握log4j的配置及使用了解Java中的基本數據類型與封裝數據類型理解Java自動裝箱與拆箱的特性掌握使用反射獲取類的結構信息掌握使用反射調用類中的方法筆記內容:log4j的配置和使用:定義:Apatch提供的開源的日志包
如果對于commons-loging、log4j、slf4j、LogBack等都已經非常清楚了,可以忽略本文。幾次解決日志沖突問題時對這幾個概念的簡單總結,希望對這塊基礎沒有理解透的同學能有所幫助,當然如果對這塊有更深刻理解的同學,也貢獻出自己的知識和見解。
Log4j簡介Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIXSyslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。?Log4j由三個重要的組件構成:日志信息的優先級,日志信息的輸出目的地,日志信息的輸出格式。
控制臺的實現就不說了,這里提供兩種實例的配置,一種是輸出為文件的(每天輸出一個文件),一種為輸出到數據庫的配置。
log4j用法——記錄日志
log4j是一個很好的開源的日志項目,下面就我在實際中使用的一些情況作一個小結(我所寫的是以spring為框架的運用,之所以要提到這點,是因為在spring中專門有處理log4j的地方,而我也用到了這些地方)。在使用的第一步你要明白你所發布的web項目所使用的服務器,因為不同的服務器對于使用log4j是有些不同的,我在實際使用中主要是用tomcat和jboss兩類,對于tomcat,它本身是沒有配置log4j的,所以使用起來和常規的一樣;
Log4配置一、常用輸出格式%c??列出logger名字空間的全稱,如加上{層數}表示出從最內層算起的指定層數的名字空間%X?按MDC(MappedDiagnosticContext,線程映射表)輸出日志。通常用于多個客戶端連接同一臺服務器,方便服務器區分是那個客戶端訪問留下來的日志。
對JAVAWEB應用來說,我們可以有兩種方案。一種是配置成log4j.properties,一種是配置成log4j.xml形式。我們這里采用的是log4j.xml形式。
在項目中的classes中新建立一個log4j.properties文件即可;在實際編程時,要使Log4j真正在系統中運行事先還要對配置文件進行定義。定義步驟就是對Logger、Appender及Layout的分別使用。Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是javaproperties(key=value)【Java特性文件(鍵=值。
分享log4j簡介log4j的構成Logger組件介紹Appender組件介紹Layout組件介紹Log4j使用經驗Log4j的擴展Log4j介紹1、Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIXSyslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。
這篇文章描述了Log4j的API、獨一無二的特色和設計原理。Log4j是一個聚集了許多作者勞動成果的開源軟件項目。它允許開發人眼以任意的粒度輸出日志描述信息。它利用外部的配置文件,在運行時是完全可配置的。最厲害的是,log4j有一條平滑的學習曲線。當心:從用戶的反饋表明,它是很容易上癮的。
最近在搞一個項目架設,希望從構建一個項目方方面面都徹底研究透,增長實戰經驗。 今天先研究一下日志的構建,這里選擇了log4j--java方面比較流行的log框架,功能 很強大,使用起來也很方便了
Jakarta Commons Logging (JCL)提供的是一個日志(Log)接口(interface),同時兼顧輕量級和不依賴于具體的日志實現工具。它提供給中間件/日志工具開發者一個簡單的日志操作抽象,允許程序開發人員使用不同的具體日志實現工具。了解包里情況,可以查看它的API文檔:http://www.oschina.net/uploads/doc/commons-logging-1.1.1/index.html , 其中Log(基本記錄器)和LogFactory(負責創建Log實例)是兩個基類。該API直接提供對下列底層日志記錄工具的支持:Jdk14Logger,Log4JLogger,LogKitLogger,NoOpLogger(直接丟棄所有日志信息),還有一個SimpleLog。有必要詳細說明一下調用LogFactory.getLog()時發生的事情。調用該函數會啟動一個發現過程,即找出必需的底層日志記錄功能的實現,具體的發現過程在下面列出: ( 換句話說就是,有這么多工具,common-logging該使用哪一個呢?這取決于系統的設置,common-logging將按以下順序決定使用哪個日志記錄工具:)
“Logger.getLogger(Test.class);”這里的“Test.class”事實上傳進去的是Test這個類的完整路徑(包名+類名),“test.Test”。這樣如果存在“test”這個Log那么Test這個Log就繼承它,否則就繼承rootLogger。
如果在程序運行中輸出大量日志,顯然會對應用性能造成一定的影響。Log4J對性能的影響程度取決于以下因素:1.日志輸出目的地:例如把日志輸出到控制臺的速度和輸出到文件系統的速度是不一樣的。2.日志輸出格式:例如采用SimpleLayout輸出日志消息比采用Patternlayout簡單,因此速度更快。3.日志級別:日志級別設置得越低,輸出的日志內容越多,對性能的影響越大。在產品測試階段,可以把日志級別設置得低一些,便于跟蹤和調試程序,而在產品發布階段,應該把日志級別設置得高一些。