1. 程式人生 > >【轉載收藏】log4j 配置介紹

【轉載收藏】log4j 配置介紹

log4j.properties 使用
一.引數意義說明
輸出級別的種類
ERROR、WARN、INFO、DEBUG
ERROR 為嚴重錯誤 主要是程式的錯誤
WARN 為一般警告,比如session丟失
INFO 為一般要顯示的資訊,比如登入登出
DEBUG 為程式的除錯資訊
配置日誌資訊輸出目的地
log4j.appender.appenderName = fully.qualified.name.of.appender.class
1.org.apache.log4j.ConsoleAppender(控制檯)
2.org.apache.log4j.FileAppender(檔案)
3.org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌檔案)
4.org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案)
5.org.apache.log4j.WriterAppender(將日誌資訊以流格式傳送到任意指定的地方)
配置日誌資訊的格式
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
1.org.apache.log4j.HTMLLayout(以HTML表格形式佈局),
2.org.apache.log4j.PatternLayout(可以靈活地指定佈局模式),
3.org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串),
4.org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等等資訊)
控制檯選項
Threshold=DEBUG:指定日誌訊息的輸出最低層次。
ImmediateFlush=true:預設值是true,意謂著所有的訊息都會被立即輸出。
Target=System.err:預設情況下是:System.out,指定輸出控制檯
FileAppender 選項
Threshold=DEBUF:指定日誌訊息的輸出最低層次。
ImmediateFlush=true:預設值是true,意謂著所有的訊息都會被立即輸出。
File=mylog.txt:指定訊息輸出到mylog.txt檔案。
Append=false:預設值是true,即將訊息增加到指定檔案中,false指將訊息覆蓋指定的檔案內容。
RollingFileAppender 選項
Threshold=DEBUG:指定日誌訊息的輸出最低層次。
ImmediateFlush=true:預設值是true,意謂著所有的訊息都會被立即輸出。
File=mylog.txt:指定訊息輸出到mylog.txt檔案。
Append=false:預設值是true,即將訊息增加到指定檔案中,false指將訊息覆蓋指定的檔案內容。
MaxFileSize=100KB: 字尾可以是KB, MB 或者是 GB. 在日誌檔案到達該大小時,將會自動滾動,即將原來的內容移到mylog.log.1檔案。
MaxBackupIndex=2:指定可以產生的滾動檔案的最大數。
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
日誌資訊格式中幾個符號所代表的含義:
 -X號: X資訊輸出時左對齊;
 %p: 輸出日誌資訊優先順序,即DEBUG,INFO,WARN,ERROR,FATAL,
 %d: 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
 %r: 輸出自應用啟動到輸出該log資訊耗費的毫秒數
 %c: 輸出日誌資訊所屬的類目,通常就是所在類的全名
 %t: 輸出產生該日誌事件的執行緒名
 %l: 輸出日誌事件的發生位置,相當於%C.%M(%F:%L)的組合,包括類目名、發生的執行緒,以及在程式碼中的行數。舉例:Testlog4.main (TestLog4.
Java
:10)
 %x: 輸出和當前執行緒相關聯的NDC(巢狀診斷環境),尤其用到像Java servlets這樣的多客戶多執行緒的應用中。
 %%: 輸出一個"%"字元
 %F: 輸出日誌訊息產生時所在的檔名稱
 %L: 輸出程式碼中的行號
 %m: 輸出程式碼中指定的訊息,產生的日誌具體資訊
 %n: 輸出一個回車換行符,Windows平臺為"/r/n",Unix平臺為"/n"輸出日誌資訊換行
 可以在%與模式字元之間加上修飾符來控制其最小寬度、最大寬度、和文字的對齊方式。如:
 1)%20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,預設的情況下右對齊。
 2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,"-"號指定左對齊。
 3)%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大於30的話,就會將左邊多出的字元截掉,但小於30的話也不會有空格。
 4)%20.30c:如果category的名稱小於20就補空格,並且右對齊,如果其名稱長於30字元,就從左邊較遠輸出的字元截掉。
二.檔案配置Sample1
log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R
# ConsoleAppender 輸出
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
# File 輸出 一天一個檔案,輸出路徑可以定製,一般在根路徑下
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=blog_log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
檔案配置Sample2
下面給出的Log4J配置檔案實現了輸出到控制檯,檔案,回滾檔案,傳送日誌郵件,輸出到
資料庫
日誌表,自定義標籤等全套功能。
log4j.rootLogger=DEBUG,CONSOLE,A1,im 
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE
log4j.addivity.org.apache=true
################### 
# Console Appender 
################### 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.Threshold=DEBUG 
log4j.appender.CONSOLE.Target=System.out 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
##################### 
# File Appender 
##################### 
log4j.appender.FILE=org.apache.log4j.FileAppender 
log4j.appender.FILE.File=file.log 
log4j.appender.FILE.Append=false 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
# Use this layout for LogFactor 5 analysis
######################## 
# Rolling File 
######################## 
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.ROLLING_FILE.Threshold=ERROR 
log4j.appender.ROLLING_FILE.File=rolling.log 
log4j.appender.ROLLING_FILE.Append=true 
log4j.appender.ROLLING_FILE.MaxFileSize=10KB 
log4j.appender.ROLLING_FILE.MaxBackupIndex=1 
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#################### 
# Socket Appender 
#################### 
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender 
log4j.appender.SOCKET.RemoteHost=localhost 
log4j.appender.SOCKET.Port=5001 
log4j.appender.SOCKET.LocationInfo=true 
# Set up for Log Facter 5 
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout 
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
######################## 
# Log Factor 5 Appender 
######################## 
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender 
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000
######################## 
# SMTP Appender 
####################### 
log4j.appender.MAIL=org.apache.log4j
.NET
.SMTPAppender 
log4j.appender.MAIL.Threshold=FATAL 
log4j.appender.MAIL.BufferSize=10 
[email protected]
log4j.appender.MAIL.SMTPHost=mail.hollycrm.com 
log4j.appender.MAIL.Subject=Log4J Message 
[email protected]
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
######################## 
# JDBC Appender 
####################### 
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.DATABASE.URL=jdbc:MySQL://localhost:3306/test 
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver 
log4j.appender.DATABASE.user=root 
log4j.appender.DATABASE.password= 
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n') 
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout 
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A1.File=SampleMessages.log4j 
log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' 
log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout
################### 
#自定義Appender 
################### 
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
log4j.appender.im.host = mail.cybercorlin.Net 
log4j.appender.im.username = username 
log4j.appender.im.password = password 
log4j.appender.im.recipient = [email protected]
log4j.appender.im.layout=org.apache.log4j.PatternLayout 
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
三.高階使用
實驗目的:
 1.把FATAL級錯誤寫入2000NT日誌
 2. WARN,ERROR,FATAL級錯誤傳送email通知管理員
 3.其他級別的錯誤直接在後臺輸出
實驗步驟:
 輸出到2000NT日誌
 1.把Log4j壓縮包裡的NTEventLogAppender.dll拷到WINNT/SYSTEM32目錄下
 2.寫配置檔案log4j.properties
# 在2000系統日誌輸出
 log4j.logger.NTlog=FATAL, A8
 # APPENDER A8
 log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender
 log4j.appender.A8.Source=JavaTest
 log4j.appender.A8.layout=org.apache.log4j.PatternLayout
 log4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
3.呼叫程式碼:
 Logger logger2 = Logger.getLogger("NTlog"); //要和配置檔案中設定的名字相同
 logger2.debug("debug!!!");
 logger2.info("info!!!");
 logger2.warn("warn!!!");
 logger2.error("error!!!");
 //只有這個錯誤才會寫入2000日誌
 logger2.fatal("fatal!!!");
傳送email通知管理員:
 1. 首先下載JavaMail和JAF, 
  http://java.sun.com/j2ee/ja/javamail/index.html
  http://java.sun.com/beans/glasgow/jaf.html
 在專案中引用mail.jar和activation.jar。
 2. 寫配置檔案
 # 將日誌傳送到email
 log4j.logger.MailLog=WARN,A5
 #  APPENDER A5
 log4j.appender.A5=org.apache.log4j.net.SMTPAppender
 log4j.appender.A5.BufferSize=5
 [email protected]
 lo[email protected]
 log4j.appender.A5.Subject=ErrorLog
 log4j.appender.A5.SMTPHost=smtp.263.net
 log4j.appender.A5.layout=org.apache.log4j.PatternLayout
 log4j.appender.A5.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
 3.呼叫程式碼:
 //把日誌傳送到mail
 Logger logger3 = Logger.getLogger("MailLog");
 logger3.warn("warn!!!");
 logger3.error("error!!!");
 logger3.fatal("fatal!!!");
在後臺輸出所有類別的錯誤:
 1. 寫配置檔案
 # 在後臺輸出
 log4j.logger.console=DEBUG, A1
 # APPENDER A1
 log4j.appender.A1=org.apache.log4j.ConsoleAppender
 log4j.appender.A1.layout=org.apache.log4j.PatternLayout
 log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
 2.呼叫程式碼
 Logger logger1 = Logger.getLogger("console");
 logger1.debug("debug!!!");
 logger1.info("info!!!");
 logger1.warn("warn!!!");
 logger1.error("error!!!");
 logger1.fatal("fatal!!!");
--------------------------------------------------------------------
 全部配置檔案:log4j.properties
 # 在後臺輸出
 log4j.logger.console=DEBUG, A1
 # APPENDER A1
 log4j.appender.A1=org.apache.log4j.ConsoleAppender
 log4j.appender.A1.layout=org.apache.log4j.PatternLayout
 log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
# 在2000系統日誌輸出
 log4j.logger.NTlog=FATAL, A8
 # APPENDER A8
 log4j.appender.A8=org.apache.log4j.nt.NTEventLogAppender
 log4j.appender.A8.Source=JavaTest
 log4j.appender.A8.layout=org.apache.log4j.PatternLayout
 log4j.appender.A8.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
# 將日誌傳送到email
 log4j.logger.MailLog=WARN,A5
 #  APPENDER A5
 log4j.appender.A5=org.apache.log4j.net.SMTPAppender
 log4j.appender.A5.BufferSize=5
 [email protected]
 [email protected]
 log4j.appender.A5.Subject=ErrorLog
 log4j.appender.A5.SMTPHost=smtp.263.net
 log4j.appender.A5.layout=org.apache.log4j.PatternLayout
 log4j.appender.A5.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
全部程式碼:Log4jTest.java
  
/* 
  * 建立日期 2003-11-13 
  */ 
 package edu.bcu.Bean; 
 import org.apache.log4j.*; 
 //import org.apache.log4j.nt.*; 
 //import org.apache.log4j.net.*; 
 /** 
  * @author yanxu 
  */ 
 public class Log4jTest 
 { 
  public static void main(String args[]) 
  { 
   PropertyConfigurator.configure("log4j.properties"); 
   //在後臺輸出 
   Logger logger1 = Logger.getLogger("console"); 
   logger1.debug("debug!!!"); 
   logger1.info("info!!!"); 
   logger1.warn("warn!!!"); 
   logger1.error("error!!!"); 
   logger1.fatal("fatal!!!");
//在NT系統日誌輸出 
   Logger logger2 = Logger.getLogger("NTlog"); 
   //NTEventLogAppender nla = new NTEventLogAppender(); 
   logger2.debug("debug!!!"); 
   logger2.info("info!!!"); 
   logger2.warn("warn!!!"); 
   logger2.error("error!!!"); 
   //只有這個錯誤才會寫入2000日誌 
   logger2.fatal("fatal!!!");
//把日誌傳送到mail 
   Logger logger3 = Logger.getLogger("MailLog"); 
   //SMTPAppender sa = new SMTPAppender(); 
   logger3.warn("warn!!!"); 
   logger3.error("error!!!"); 
   logger3.fatal("fatal!!!"); 
  } 
 }

相關推薦

轉載收藏log4j 配置介紹

log4j.properties 使用 一.引數意義說明 輸出級別的種類 ERROR、WARN、INFO、DEBUG ERROR 為嚴重錯誤 主要是程式的錯誤 WARN 為一般警告,比如session丟失 INFO 為一般要顯示的資訊,比如登入登出 DEBUG 為程式的除錯資訊 配置日誌資訊輸出目的地 log

Java日誌log4j配置詳解

#設定日誌的級別,以及日誌所使用的appender log4j.rootLogger=all, console, file ### 控制檯 ### log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.cons

轉載文章拜占庭將軍問題深入探討

監聽 修改 最終 重寫 其中 聯系 默認 命題 不存在 原文地址:http://www.8btc.com/baizhantingjiangjun part1: 拜占庭將軍問題是什麽? 1.1 拜占庭將軍問題場景 1.2 與拜占庭將軍相關問題:兩軍問題 part

負載均衡F5配置node、pool、vs等

負載均衡 f5 big 一、F5 Node創建Main>>Local Traffice>>Nodes 選擇create創建Node2.在創建完成Node後,發現Node的顏色為藍色這是因為Node沒有進行健康檢查,開啟健康檢查就可以Main>>Local Tra

bird-front前端框架介紹

lan 查看 後臺管理 gpo mas button 圖片 blank div bird前端項目,基於react、antd、antd-admin,封裝常用數據組件,細粒度權限解決方案。 bird-front是基於react的後臺管理系統前端項目,框架構建部分嚴重借鑒於ant

第十七期 ASA防火墻基本配置

com nag extend eve -o process 2.2.0 謝謝 防火墻 實驗目的:1. DMZ發布Web服務器,Client2可以訪問Server3 使用命令show conn detail查看Conn表 查看ASA和AR【R1】的路由表 配置ACL禁

算法Gh0st配置加密算法(異或、Base64)

異或 urn byte break down unsigned ltib else lower 1、前言 分析木馬程序常常遇到很多配置信息被加密的情況,雖然現在都不直接分析而是通過Wireshark之類的直接讀記錄。 2017年Gh0st樣本大量新增,通過對木馬源碼的分析還

Jmeter----Mac電腦環境配置與打開Jmeter界面

ron nes acl 配置 tool height 一個 sdk open 前提條件:打開Jmeter界面,首先需要安裝java並配置環境變量。 第一步:下載並安裝jdk和環境配置   java jdk下載:http://www.oracle.com/technetwor

轉載整理 分頁

整理 alt www pre spa 翻頁 分頁查詢 限定 service 1 條件優化 加入限定(記錄之前頁信息) https://zhuanlan.zhihu.com/p/26043916 LIMIT 語句 分頁查詢是最常用的場景之一,但也通常也是最容易出問題的地

轉載Grafana –美觀、強大的可視化監控指標展示工具

工具 過程 流行 data 2.0 fan 時序數據 bsp only 在之前的InfluxDB系列教程 中,我們給大家介紹了當下流行的一款時序數據庫--InfluxDB。 接下來給大家帶來一款強大的,與InfluxDB搭配使用的前端指標項展示項目--Grafana。 Gr

android studio gradle配置成本地離線zip包

html onu androi com 1.5.0 str 技術 5.0 使用場景 原文:【android studio】 gradle配置成本地離線zip包 關鍵詞:dist

已解決checkout 配置無效的問題可以進來看下

開始 以及 com git pan 項目 遇到 轉載 沖突 在日常工作中,我們經常會遇到要更新一個項目,但是由於更改了配置,需要將這些配置commit或者checkout,但是有的同學不想commit怎麽辦呢,只能通過checkout,那麽問題又來了,改了很多配置,chec

PHP學習—apache配置虛擬主機(基於域名)

什麼是虛擬主機 虛擬主機是指在網路伺服器上分出一定的磁碟空間,使用者可以租用此部分空間,以供使用者放置站點及應用元件,提供必要的資料存放和傳輸功能。 (簡而言之就是伺服器) 配置基於域名的虛擬主機 假設我們要配置一個名為www.home.com的域名,指向E:/home/cla

轉載儲存Jsoup解析html常用方法

首先我們要清楚 class的繼承關係 Document 繼承於  Element  繼承於 Node  繼承於 Object 首先 我們先研究一下 Element 中的函式作用: 01 addClass(String className)  

轉載儲存Java丨jsoup網路爬蟲登入得到cookie並帶上cookie訪問

優秀文章:https://blog.csdn.net/wisdom_maxl/article/details/65631825 jsoup使用cookie: Set<Cookie> cookie_set = LoadCSDN.load(); // WebClient

TP5.1command配置自定義命令

author:咔咔 wechat:fangkangfk   之前我們自定義命令都是修改原始碼實現的,今天我們來會一會command   首先在我們設定的名稱空間data裡邊創建出對應的資料夾   雖然我們在command配置自定義命

微信公眾號第三方開發之七提交全網釋出個人收藏

【原文:http://blog.csdn.net/eadio/article/details/51546687,如有版權問題請告知我進行刪除】   在開始這個章節前,我要特別說明下,“公眾號訊息與事件接收URL ”微信有說明尾數一定要帶字串/$APPID$/,而這個固定字

設計模式反射+配置檔案

        之前在學習設計模式的時候,對於抽象工廠中的反射+配置檔案的使用一直都是一知半解的,但是在機房重構七層登入的運用以及報錯,讓自己對於反射 的使用有了更深刻的認識。        反射就像是

轉載儲存mapreduce優秀文章

Hadoop MapReduce執行過程詳解及MR中job引數及設定map和reduce的個數(帶hadoop例子):https://blog.csdn.net/helloxiaozhe/article/details/79246400 MapReduce–倒排索引:https://bl

轉載儲存Java+Selenium使用

環境搭建:https://blog.csdn.net/u011541946/article/details/72898514 環境搭建問題解決:https://blog.csdn.net/u010366748/article/details/72872190 package server