1. 程式人生 > >log4j.properties配置檔案配置項的說明

log4j.properties配置檔案配置項的說明

在程式中,可以以以下方式來使用
   Log log = org.apache.commons.logging.LogFactory.LogFactory.getLog(yourClassName.class);
  log.debug("debug message -------------------");
  log.info("info message ******************");
  log.warn("warn message +++++++++++++++");
  log.error("error msg=================");
本文主要講的是如何配置

log4j,先讓我們先看看一個典型的log4j配置:

==========log4j.properties==================

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH\:mm\:ss.SSS} %-5p[%F\:%L]%x %m%n

log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=D:/workspace/log4jtest/log/application.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.fileout.MaxBackupIndex=10
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d{MM-ddHH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n

log4j.rootCategory=INFO,stdout, fileout
log4j.logger.com.wolfsquare.log2=DEBUG,stdout
===================================

這個檔案可以劃為三小塊

===========第一塊定義了一個名為 stdout appenderlayout (appender,layout的概念後面再解釋,目前先記著有這樣兩個名詞)

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
定義stdout的實際輸出實現類,從這個appender

實現類名可以猜到,這個類是負責控制檯輸出的。
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
定義stdout的輸出裝飾器
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH\:mm\:ss.SSS} %-5p[%F\:%L]%x %m%n
裝飾器引數配置

============第二塊定義了一個名為 fileout appenderlayout:
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
同理可猜這個實現類是輸出到檔案的
log4j.appender.fileout.File=D:/workspace/log4jtest/log/application.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.fileout.MaxBackupIndex=10
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d{MM-ddHH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n

============第三塊定義了名字分別為rootCategory,log4j.logger.com.wolfsquare.log2的兩個logger
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=DEBUG,stdout

rootCategory logger是預設的logger,記錄所有的包的資訊輸出。第二個logger是隻輸出指定包com.wolfsquare.log2下的日誌資訊。那麼INFO,DEBUG又是什麼意思呢,他們是資訊的分級標識,通過繼承實現這個實現自定義級別的分級。第三塊配置兩句的意思是這樣的:
rootCategory
把所有類的INFO級別以上的資訊輸出到stdoutfileout兩個appender中,
logger.com.wolfsquare.log2
,把com.wolfsquare.log2包中的所有類(包括子包)DEBUG級別(含)以上的資訊輸出到stdout 一個logger可以輸出到很多個裝置中(appender,如果需要增加輸出裝置則用分號分隔開appender名稱即可。

輸出資訊的分類級別是DEBUG > INFO > WARN > ERROR,資訊細節由細到粗,指定輸出某一級別的資訊時,過細的資訊輸出將會被忽略

如果一個配置中有多個logger,他們之間會有什麼關係呢?答案是,在輸出上,他們沒有任何關係,都是獨立運作的,不相關的,但是在配置上,父包的配置會傳給子包,如果子包沒有另外定義配置的話。例如上面配置檔案中的兩個logger
log4j.logger.com.wolfsquare
log4j.logger.com.wolfsquare.log2

這裡認為 log4j.logger.com.wolfsquare.log2 繼承自 log4j.logger.com.wolfsquare,他們的配置宣告如下:
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=,stdout
注意第二句沒有指定輸出級別,那麼根據配置繼承規則會繼承父logger的配置,在這裡就是INFO

同時需要強調的是,如果兩個logger有繼承關係,且輸出到同一個appender,根據輸出獨立原則,那麼將會出現兩行一樣的資訊,例如上面的兩個logger定義會導致這樣的情況。最後以一幅圖來概括:

log4j.properties配置詳解

在學習spring mvc的同時也對其日誌引起了興趣,由於準備要把log4j更換成logback 其兩框架都是同一個作者開發,所以先把log4j做一個詳細的瞭解,以下內容從Google上搜到出來的,關於log4j.properties的詳細配置

Log4J的配置檔案(Configuration File)就是用來設定記錄器的級別、存放器和佈局的,它可接key=value格式的設定或xml格式的設定資訊。通過配置,可以創建出Log4J的執行環境。

1. 配置檔案

Log4J配置檔案的基本格式如下:

#配置根Logger

log4j.rootLogger  = [ level ] , appenderName1 ,  appenderName2,  …

#配置日誌資訊輸出目的地Appender

log4j.appender.appenderName  = fully.qualified.name.of.appender.class

  log4j.appender.appenderName.option1  = value1

  …

  log4j.appender.appenderName.optionN  = valueN

#配置日誌資訊的格式(佈局)

log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class

  log4j.appender.appenderName.layout.option1  = value1

  …

  log4j.appender.appenderName.layout.optionN  = valueN 

其中 [level] 是日誌輸出級別,共有5級:

FATAL     0

ERROR     3

WARN      4

INFO      6

DEBUG     7

Appender 為日誌輸出目的地,Log4j提供的appender有以下幾種:

org.apache.log4j.ConsoleAppender(控制檯),

org.apache.log4j.FileAppender(檔案),

org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌檔案),

org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案),

org.apache.log4j.WriterAppender(將日誌資訊以流格式傳送到任意指定的地方)

Layout:日誌輸出格式,Log4j提供的layout有以下幾種:

org.apache.log4j.HTMLLayout(以HTML表格形式佈局),

org.apache.log4j.PatternLayout(可以靈活地指定佈局模式),

org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串),

org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等等資訊)

列印引數: Log4J採用類似C語言中的printf函式的列印格式格式化日誌資訊,如下:

%m   輸出程式碼中指定的訊息

%p   輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL

%r   輸出自應用啟動到輸出該log資訊耗費的毫秒數

%c   輸出所屬的類目,通常就是所在類的全名

%t   輸出產生該日誌事件的執行緒名

%n   輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n”

%d   輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyyMMM dd HH:mm:ss , SSS},輸出類似:2002年10月18日  22 : 10 : 28 , 921

%l   輸出日誌事件的發生位置,包括類目名、發生的執行緒,以及在程式碼中的行數。舉例:Testlog4.main(TestLog4.java: 10 )

2. 在程式碼中初始化Logger:

1)在程式中呼叫BasicConfigurator.configure()方法:給根記錄器增加一個ConsoleAppender,輸出格式通過PatternLayout設為"%-4r [%t] %-5p %c %x - %m%n",還有根記錄器的預設級別是Level.DEBUG.

2)配置放在檔案裡,通過命令列引數傳遞檔名字,通過PropertyConfigurator.configure(args[x])解析並配置;

3)配置放在檔案裡,通過環境變數傳遞檔名等資訊,利用log4j預設的初始化過程解析並配置;

4)配置放在檔案裡,通過應用伺服器配置傳遞檔名等資訊,利用一個特殊的servlet來完成配置。

3. 為不同的 Appender 設定日誌輸出級別:

當除錯系統時,我們往往注意的只是異常級別的日誌輸出,但是通常所有級別的輸出都是放在一個檔案裡的,如果日誌輸出的級別是BUG!?那就慢慢去找吧。

這時我們也許會想要是能把異常資訊單獨輸出到一個檔案裡該多好啊。當然可以,Log4j已經提供了這樣的功能,我們只需要在配置中修改Appender的Threshold 就能實現,比如下面的例子:

[配置檔案]

 ###set log levels ###

log4j.rootLogger = debug ,  stdout , D ,  E

### 輸出到控制檯 ###

log4j.appender.stdout =org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout =org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n

### 輸出到日誌檔案 ###

log4j.appender.D =org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = logs/log.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG ## 輸出DEBUG級別以上的日誌

log4j.appender.D.layout =org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern =%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [%p ]  %m%n

### 儲存異常資訊到單獨檔案 ###

log4j.appender.D =org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = logs/error.log ## 異常日誌檔名

log4j.appender.D.Append = true

log4j.appender.D.Threshold = ERROR ## 只輸出ERROR級別以上的日誌!!!

log4j.appender.D.layout =org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern =%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [%p ]  %m%n

[程式碼中使用]

 public class TestLog4j  {

 public static void  main(String[] args)  {

       PropertyConfigurator.configure( " D:/Code/conf/log4j.properties" );

       Logger logger  =  Logger.getLogger(TestLog4j. class );

       logger.debug( " debug " );

       logger.error( " error " );

    }

}

執行一下,看看異常資訊是不是儲存在了一個單獨的檔案error.log中

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{yyyMMM 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-ddHH: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-ddHH: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 INTOLOG4J (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]

[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.properties配置檔案配置的說明

在程式中,可以以以下方式來使用    Log log = org.apache.commons.logging.LogFactory.LogFactory.getLog(yourClassName.class);   log.debug("debug message --

redis.conf配置檔案配置解析

知識來源於 : https://blog.csdn.net/bsfz_2018/article/details/79061413【Redis在linux下的安裝】 daemonize:如需要在後臺執行,把該項的值改為yes pdifile:把pid檔案放在/var/run/redis.pid,可以

Quartz 監控學習記錄(三)配置檔案配置的含義

quartz.properties #org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore #=================================================

log4j配置檔案配置及解讀

說明:以下開發工具使用的是idea 一:開啟idea,建立一個Maven管理的web專案 1. File->New->Module 2.Maven->勾選Create from archetype->選中maven-archetype-web

log4j.properties的簡單配置和使用

log4j.properties  // 日誌檔名不能隨便寫, 是properties檔案 1 log4j.rootLogger=INFO, Console //表示INFO級別 輸出到控制檯 2 #Console 3 log4j.appender.Console=org.apach

MapReduce錯誤之log4j.properties錯誤及配置詳解

################################################################################ #①配置根Logger: #log4j.rootLogger = [level],appenderName,appenderName2,.

log4j2.xml和log4j.properties的指定配置路徑方法

對於預設直接把配置檔案放任classpath下面,這種henjiandan 首先說下log4j的配置,有兩種方法: 1、在web.xml中配置(推薦): <!-- 配置log4j日誌載入檔案 log4j.properties --> <context-pa

nginx、thinkphp3.2、linux配置檔案配置

nginx.conf配置檔案:     server {         listen 9001;         server_name 127

Spring配置檔案中如何使用外部配置檔案配置資料庫連線

版權宣告:本文為博主原創文章,歡迎指正或者轉載。 https://blog.csdn.net/qq_38663729/article/details/78821258 直接在spring的配置檔案中applicationContext.xml檔案中配置資料庫連線也可以,但是有個問題,需要在url

Spring MVC配置檔案配置檢視解析器

spring mvc配置檔案 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht

Springboot中配置檔案配置大全

前言 今天下午,無意中翻到之前整理的Springboot的配置檔案相關配置,才想起自己很早之前還整理過這樣的東西,時間長了自己都給忘了。。。今天,就正好給大家分享下 配置 #############################################################

建立SpringMVC專案及配置檔案(配置式)

配置式(不使用註解):在springmvc的配置檔案中,使用標籤建立物件 步驟: 1.新建 web 專案 2.匯入jar包: 1)spring的核心jar:spring-beans.jar,spring-core.jar,spring-context.jar,s

Spring MVC配置檔案配置檢視

spring mvc配置檔案 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframewo

$Django importlib與dir知識,手寫配置檔案, 配置查詢順序 drf分頁器&drf版本控制

1  importlib與dir知識 # importlib簡介動態匯入字串模組 # 常規匯入 from ss.aa import b from ss import a print(b,type(b)) #<module 'ss.aa.b' from 'F:\\python3

IDEA配置檔案配置檔案配置

IDEA配置檔案的配置檔案配置: 路徑 /Applications/IntelliJ IDEA 3.app/Contents/bin/idea.vmoptions (/IntelliJ IDEA 3.app  換成自己的Intellij的目錄) 示例: -Xms1024m-Xmx2048m

springboot 配置檔案配置為物件

@Beanpublic Properties appConstantsProperties() throws IOException { PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); prope

Ubuntu 14.04用配置檔案配置靜態IP和動態IP

1,靜態IP: # cat  /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8)                                                

linux下mysql5.7以上my.cnf配置檔案配置

簡單配置,低配置伺服器配置   [client] #客戶端設定 port = 3306 socket = /data/mysql/data/mysql.sock default-character-set = utf8mb4 [mysqld] user =

通過靜態程式碼塊讀取配置檔案配置靜態屬性

在專案開發中,通常會將一些經常變動的配置提取出來,做成一個配置類,通過該類的靜態屬性來引用配置。而在專案上線的時候,為了方便後期運維,將配置寫在程式碼裡面的方式是肯定不行的了,這時需要將配置資訊提取出來,放到配置檔案中。下面是一種採用靜態程式碼塊配置靜態變數的方

linux下的apache在httpd.conf配置目錄別名和include引入自配置檔案配置的方法

需求:將web服務中路徑名較長的目錄設定別名,方便使用者訪問 首先確定iptables服務和selinux都已關閉!!!!! 首先確定iptables服務和selinux都已關閉!!!!! 首先確定iptables服務和selinux都已關閉!!!!! 重要的事情,說三遍!