apache log4j入門

學習一項新東西之前,我常常問自己:

這項技術是什么?

這項技術為我們做了什么?

為什么不用其他類似的技術?

如何使用這項技術?

于是我帶著這些問題開始學習apache log4j

一,apache log4j是什么

The Apache Logging Services Project creates and maintains open-source software related to the logging of application behavior and released at no charge to the public.

這面這段話是apache日志服務官網首頁的一段話,意思就是說用來記錄程序的行為,開源免費。

而log4j是apache為Java提供的日志管理工具,目前可以用于生產的最新版本是Log4j 2.11.0,2.4及更高版本依賴于JDK7,

2.0-alpha1 to 2.3依賴于JDK6.

二,log4j為我們做了什么

2.1,日志分級

日志級別從低到高分為7個級別:

all:輸出所有日志信息

debug:輸出調試信息

info:輸出提示信息

warn:表明可能有潛在錯誤的情形,輸出警告信息

error :表明發生了錯誤事件,但不影響系統運行,輸出錯誤信息

fatal:表明發生了嚴重的錯誤,可能導致系統停止運行

off:關閉日志輸出

2.2,多樣化的日志存儲方式

可以輸出到控制臺、文件、Socket、郵件、數據庫或者自定義Appender

如何配置不同的Appender,https://blog.csdn.net/qq_30788845/article/details/53083774

2.3,日志格式化

log4j,通常%加其他字符,代表以什么格式輸出什么信息

三,log4j和common-logging、slf4j的關系

網上有很多關于這方面的博客,這里暫且不討論這個問題。

四,為什么不用其他的日志工具

log4j很強大、很好用。

五,log4j.properties文件示例

下面是實際項目的log4j配置文件

###loggers###
#log4j.rootLogger=INFO,console,R
log4j.rootLogger=INFO,R
#sql
log4j.logger.com.think.base.jdbc=ERROR###consoleAppender###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS}[%t][%.30c:%L][%p]-%m%n###detailAppender###
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.Threshold=ERROR
log4j.appender.R.Append=true
log4j.appender.R.File=/srv/www/app/demo/log/detail.log
log4j.appender.R.DatePattern='.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{HH:mm:ss,SSS}[%t][%.30c:%L][%p]-%m%n

log4j.rootLogger=INFO,R

表示將INFO級別的日志輸出到目的地R,R在后面的配置中定義

log4j.logger.com.think.base.jdbc=ERROR

表示將com.think.base.jdbc這個類的日志級別設為Error

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

表示每天產生一個日志文件

log4j.appender.R.File=/srv/www/app/demo/log/detail.log

日志文件的路徑

log4j.appender.R.DatePattern='.'yyyy-MM-dd

歷史日志文件名的格式,比如說今天是2018年7月26號,那么昨天的日志文件名為detail.log.2018-07-25

log4j.appender.R.layout.ConversionPattern=%d{HH:mm:ss,SSS}[%t][%.30c:%L][%p]-%m%n

%d{HH:mm:ss,SSS}表示輸出時間,例如:18:20:38,448

%t表示輸出線程名,例如:Thread-310

%.30c表示輸出類的路徑和名稱(超過30個個字符的部分不會輸出),例如:ve.fxc.stkkh.bus.util.BusUtils

%L表示輸出行號

%p表示輸出日志級別

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530442.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530442.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530442.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

低版本Eclipse如何快速設置黑色主題

低版本的Eclipse(例如Kepler Service Release 2),沒有自帶的黑色主題,并且在線安裝黑色主題會報錯 去網上找了一圈結果都是騙人的,這個時候別著急,只需三個簡單的步驟即可完成黑色主題配置。 下面是設置完…

tomcat-maven插件熱部署(簡潔版)

最近在學ssm框架,為了提高學習效率,想使用tomcat-maven插件熱部署,網上有很多關于這方面的文章,但是有很多坑。 自己總結了一下,簡化了多余的配置,還有運行過程中發生異常的原因。 環境:apach…

eclipse中配置jad反編譯插件

1 下載Eclipse支持jad插件的jar包 將下載得到的net.sf.jadclipse_3.3.0.jar放到eclipse》plugins目錄下 2 eclipse配置jad插件 下載jad.exe 3 設置文件關聯

SpringCloud學習之路(一)-簡單Demo

首先,我們先在C:\Windows\System32\drivers\etc路徑下的hosts最后添加兩個地址用于模擬服務端以及消費端的IP 127.0.0.1 dept-8001.com #微服務端127.0.0.1 client.com #消費端 SpringCloud的一個最基礎Demo,本地真實模擬環境(服務的創建者以及消費者),這是我們Demo截圖: 分為一…

Oracle數據庫數據泵導入導出

由于開發過程中有時候無法直接連數據庫,這時候需要將數據庫導入開發環境中,故此總結一個完整的數據庫導入導出過程。 注意expdp和impdp命令末尾都不能加分號 1 導出某個用戶的所有數據庫對象 1.1 Linux導出 su - oracle 授權用戶grant exp_full_data…

eclipse工作區打不開的解決方案

今天上班的時候發現eclipse打開總是閃退,剛開始以為是eclipse的問題,后來才發現是工作區的問題。 分享出來,希望能夠幫助遇到同樣問題的人。 1 設置詢問打開的工作區 eclipse安裝目錄\configuration\.settings\org.eclipse.ui.ide.prefs&a…

日期時間總結

今天總結一下日期時間如何處理,方便以后查看。 1 Oracle 1.1 日期格式參數及其含義說明 Oracle不區分大小寫,所以下面參數大小寫都可以 D 一周中的星期幾 DAY 天的名字,使用空格填充到9個字符 DD …

Oracle對象被鎖如何處理

1 查看被鎖住的對象 select object_name,machine,s.sid,s.SERIAL# from v$locked_object l,dba_objects o ,v$session s where l.object_id  o.object_id and l.session_ids.sid; 2 解鎖 將1中查詢出的sid和serial#,作為參數 alter system kill session 2400,…

BeycondCompare3破解綠色版下載

鏈接: https://pan.baidu.com/s/1GBtkLdqU7wTAzjvn2QfHrw 提取碼: rzcw 復制這段內容后打開百度網盤手機App,操作更方便哦

Oracle rowid和rownum的區別

rowid和rownum在本質上有區別: rowid rowid是物理結構上的,每插入一行數據,都會生成一條唯一的編號。可以說默認排序是根據rownum升序的,但是本質上還是根據rowid升序排列的。 rownum rownum可以說是偽列,并不存在&a…

Oracle/mysql聯合查詢union、union all

若無特殊說明,oracle與mysql均適用 使用場景 union、union all關鍵字用戶將兩個select查詢結果集合并成一個結果集,例如:一個舊系統使用a表,同樣的信息但是新系統使用了b表,這時候可以使用union或者union all關鍵字將…

【JAVA基礎篇】反射

一、反射的概念 是指在運行過程中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用這個對象的所有方法和屬性。這種動態獲取信息和動態調用方法的功能稱為JAVA的反射機制。 二、反射的優缺點 2.…

在線工具

分享一下很實用的在線工具 在線HTTP接口測試 草料二維碼 站長之家

【JAVA基礎篇】面對對象的特征

面對對象的3大特征是:封裝、繼承和多態 封裝 封裝就是將客觀的事物封裝成抽象的類,這個類包含這類事物共同的特性和行為,特性對應類的成員變量,行為對應類的成員方法。 封裝就是將一批具有相同特性和行為的客觀事物封裝成抽象類…

【JAVA基礎篇】final、finally和finalize

final final表示最終的、不可被更改的,用來修飾類、成員方法和變量,通常處于兩方面的考慮來使用它:特殊的設計和效率。 final類 一個類如果確信沒有子類或者這個類的方法不允許修改,那么就把這個類定義成final類。 final類的成…

【JAVA基礎篇】抽象類和接口的區別

抽象類和接口是定義抽象概念的兩種方式,正是由于抽象類和接口,才賦予了Java強大的面向對象的能力。在討論他們的不同點之前,我們先來了解抽象類和接口。 抽象類 在面向對象的領域一切事物都是對象。對象都是通過類來描述的,但是反…

Oracle常用函數總結

Oracle函數,當任意一個參數為空字符串或者null時,結果返回null 聚合函數 count 使用方式有5種 select count(*) from student;--統計總行數 select count(0) from student;--統計總行數,括號里面的0表示什么意思? select count(id) from …

【JAVA基礎篇】==、equals和hashCode的區別和聯系

作用:比較兩個操作數的關系,返回一個boolean類型的結果 具體含義:如果兩個操作數是基本數據類型,比較值是否相等。如果兩個操作數是引用類型,那么比較的是內存地址是否相同。 equals Object類的實例方法&#xff0c…

【JAVA基礎篇】內部類

定義在一個類內部的類稱為內部類。內部類訪問權限可以是public、protected、default或private,可以聲明為abstract供其他內部類或外部類繼承,可以聲明為static、final,也可以實現特定的接口。外部類可以訪問內部類的所有方法與屬性&#xff0…

【JAVA基礎篇】訪問權限

所謂訪問權限,指的是本類的成員變量、成員方法和內部類對其他類的可見性。 四種訪問權限 Java一共有四種訪問權限,按照權限由大到小分別為public、protected、default和private,如果省略了訪問修飾符,那訪問權限就是defualt。四…