【轉載收藏】log4j 配置介紹
一.引數意義說明
輸出級別的種類
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.
%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
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.1】command配置自定義命令
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