国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

2020-12-08 15:16evankaka Java教程

這篇文章主要為大家詳細(xì)介紹了Log4j的使用教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

日志是應(yīng)用軟件中不可缺少的部分,apache的開(kāi)源項(xiàng)目log4j是一個(gè)功能強(qiáng)大的日志組件,提供方便的日志記錄。在apache網(wǎng)站:jakarta.apache.org/log4j 可以免費(fèi)下載到log4j最新版本的軟件包。

一、入門(mén)實(shí)例

1.新建一個(gè)java工程,導(dǎo)入包log4j-1.2.17.jar,整個(gè)工程最終目錄如下

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

2、src同級(jí)創(chuàng)建并設(shè)置log4j.properties

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
### 設(shè)置###
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 = [%-5p] %d{yyyy-mm-dd hh:mm:ss,sss} method:%l%n%m%n
 
### 輸出debug 級(jí)別以上的日志到=e://logs/error.log ###
log4j.appender.d = org.apache.log4j.dailyrollingfileappender
log4j.appender.d.file = e://logs/log.log
log4j.appender.d.append = true
log4j.appender.d.threshold = 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
 
### 輸出error 級(jí)別以上的日志到=e://logs/error.log ###
log4j.appender.e = org.apache.log4j.dailyrollingfileappender
log4j.appender.e.file =e://logs/error.log
log4j.appender.e.append = true
log4j.appender.e.threshold = error
log4j.appender.e.layout = org.apache.log4j.patternlayout
log4j.appender.e.layout.conversionpattern = %-d{yyyy-mm-dd hh:mm:ss} [ %t:%r ] - [ %p ] %m%n

3、設(shè)置日志內(nèi)容

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import org.apache.log4j.logger;
/**
 *@author linbingwen
 *@2015年5月18日9:14:21
 */
public class test {
 private static logger logger = logger.getlogger(test.class);
 
 /**
 * @param args
 */
 public static void main(string[] args) {
 // system.out.println("this is println message.");
  
 // 記錄debug級(jí)別的信息
 logger.debug("this is debug message.");
 // 記錄info級(jí)別的信息
 logger.info("this is info message.");
 // 記錄error級(jí)別的信息
 logger.error("this is error message.");
 }
 
}

4、輸出結(jié)果

(1)首先是控制臺(tái)的信息

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

(2)再來(lái)看輸出的文件

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

內(nèi)容如下,發(fā)現(xiàn)已按照要求輸出到對(duì)應(yīng)的文檔中去了。

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

二、log4j基本使用方法

  log4j由三個(gè)重要的組件構(gòu)成:日志信息的優(yōu)先級(jí),日志信息的輸出目的地,日志信息的輸出格式。日志信息的優(yōu)先級(jí)從高到低有error、warn、 info、debug,分別用來(lái)指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺(tái)還是文件中;而輸出格式則控制了日志信息的顯 示內(nèi)容。

2.1、定義配置文件

  其實(shí)您也可以完全不使用配置文件,而是在代碼中配置log4j環(huán)境。但是,使用配置文件將使您的應(yīng)用程序更加靈活。log4j支持兩種配置文件格式,一種是xml格式的文件,一種是java特性文件(鍵=值)。下面我們介紹使用java特性文件做為配置文件的方法:

1.配置根logger,其語(yǔ)法為:

 
?
1
 
log4j.rootlogger = [ level ] , appendername, appendername, …

  其中,level 是日志記錄的優(yōu)先級(jí),分為off、fatal、error、warn、info、debug、all或者您定義的級(jí)別。log4j建議只使用四個(gè)級(jí)別,優(yōu) 先級(jí)從高到低分別是error、warn、info、debug。通過(guò)在這里定義的級(jí)別,您可以控制到應(yīng)用程序中相應(yīng)級(jí)別的日志信息的開(kāi)關(guān)。比如在這里定 義了info級(jí)別,則應(yīng)用程序中所有debug級(jí)別的日志信息將不被打印出來(lái)。 appendername就是指b日志信息輸出到哪個(gè)地方。您可以同時(shí)指定多個(gè)輸出目的地。

2.配置日志信息輸出目的地appender,其語(yǔ)法為:

 
?
1
 
2
3
4
log4j.appender.appendername = fully.qualified.name.of.appender.class
log4j.appender.appendername.option1 = value1
log4j.appender.appendername.option = valuen

  其中,log4j提供的appender有以下幾種:

 
?
1
 
2
3
4
5
org.apache.log4j.consoleappender(控制臺(tái)),
org.apache.log4j.fileappender(文件),
org.apache.log4j.dailyrollingfileappender(每天產(chǎn)生一個(gè)日志文件),
org.apache.log4j.rollingfileappender(文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件),
org.apache.log4j.writerappender(將日志信息以流格式發(fā)送到任意指定的地方)

3.配置日志信息的格式(布局),其語(yǔ)法為:

 
?
1
 
2
3
4
log4j.appender.appendername.layout = fully.qualified.name.of.layout.class
log4j.appender.appendername.layout.option1 = value1
log4j.appender.appendername.layout.option = valuen

  其中,log4j提供的layout有以e幾種:

 
?
1
 
2
3
4
org.apache.log4j.htmllayout(以html表格形式布局),
org.apache.log4j.patternlayout(可以靈活地指定布局模式),
org.apache.log4j.simplelayout(包含日志信息的級(jí)別和信息字符串),
org.apache.log4j.ttcclayout(包含日志產(chǎn)生的時(shí)間、線程、類別等等信息)

  log4j采用類似c語(yǔ)言中的printf函數(shù)的打印格式格式化日志信息,打印參數(shù)如下: %m 輸出代碼中指定的消息

 
?
1
 
2
3
4
5
6
7
%p 輸出優(yōu)先級(jí),即debug,info,warn,error,fatal
%r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)
%c 輸出所屬的類目,通常就是所在類的全名
%t 輸出產(chǎn)生該日志事件的線程名
%n 輸出一個(gè)回車換行符,windows平臺(tái)為“rn”,unix平臺(tái)為“n”
%d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間,默認(rèn)格式為iso8601,也可以在其后指定格式,比如:%d{yyy mmm dd hh:mm:ss,sss},輸出類似:20021018221028921
%l 輸出日志事件的發(fā)生位置,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)。舉例:testlog4.main(testlog4.java:10)

2.2、在代碼中使用log4j

1.得到記錄器

  使用log4j,第一步就是獲取日志記錄器,這個(gè)記錄器將負(fù)責(zé)控制日志信息。其語(yǔ)法為:
  public static logger getlogger( string name)
  通過(guò)指定的名字獲得記錄器,如果必要的話,則為這個(gè)名字創(chuàng)建一個(gè)新的記錄器。name一般取本類的名字,比如:
  static logger logger = logger.getlogger ( serverwithlog4j.class.getname () )

2.讀取配置文件

  當(dāng)獲得了日志記錄器之后,第二步將配置log4j環(huán)境,其語(yǔ)法為:
basicconfigurator.configure (): 自動(dòng)快速地使用缺省log4j環(huán)境。 
propertyconfigurator.configure ( string configfilename) :讀取使用java的特性文件編寫(xiě)的配置文件。 
domconfigurator.configure ( string filename ) :讀取xml形式的配置文件。 

3.插入記錄信息(格式化日志信息)

當(dāng)上兩個(gè)必要步驟執(zhí)行完畢,您就可以輕松地使用不同優(yōu)先級(jí)別的日志記錄語(yǔ)句插入到您想記錄日志的任何地方,其語(yǔ)法如下:

 
?
1
 
2
3
4
logger.debug ( object message ) ;
logger.info ( object message ) ;
logger.warn ( object message ) ;
logger.error ( object message ) ;

2.3、日志級(jí)別

每個(gè)logger都被了一個(gè)日志級(jí)別(log level),用來(lái)控制日志信息的輸出。日志級(jí)別從高到低分為:
a:off 最高等級(jí),用于關(guān)閉所有日志記錄。
b:fatal 指出每個(gè)嚴(yán)重的錯(cuò)誤事件將會(huì)導(dǎo)致應(yīng)用程序的退出。
c:error 指出雖然發(fā)生錯(cuò)誤事件,但仍然不影響系統(tǒng)的繼續(xù)運(yùn)行。
d:warm 表明會(huì)出現(xiàn)潛在的錯(cuò)誤情形。
e:info 一般和在粗粒度級(jí)別上,強(qiáng)調(diào)應(yīng)用程序的運(yùn)行全程。
f:debug 一般用于細(xì)粒度級(jí)別上,對(duì)調(diào)試應(yīng)用程序非常有幫助。
g:all 最低等級(jí),用于打開(kāi)所有日志記錄。

上面這些級(jí)別是定義在org.apache.log4j.level類中。log4j只建議使用4個(gè)級(jí)別,優(yōu)先級(jí)從高到低分別是error,warn,info和debug。通過(guò)使用日志級(jí)別,可以控制應(yīng)用程序中相應(yīng)級(jí)別日志信息的輸出。例如,如果使用b了info級(jí)別,則應(yīng)用程序中所有低于info級(jí)別的日志信息(如debug)將不會(huì)被打印出來(lái)。

三、web項(xiàng)目中使用log4j實(shí)例

    上面代碼描述了log4j的簡(jiǎn)單應(yīng)用,其實(shí)使用log4j也就是這樣簡(jiǎn)單方便。當(dāng)然除了上面的配置方法,還有其它,比如做一個(gè)j2ee應(yīng)用,在j2ee應(yīng)用使用log4j,必須先在啟動(dòng)服務(wù)時(shí)加載log4j的配置文件進(jìn)行初始化,可以在web.xml中進(jìn)行。

1、web應(yīng)用的log4j使用基本上都采用:新建一個(gè)servlet,這個(gè)servlet在init函數(shù)中為log4j執(zhí)行配置。一般就是讀入配置文件。所以需要在web.xml中為這個(gè)servlet配置,同時(shí)設(shè)定load-on-startup為1。
2、這個(gè)servlet配置log4j就是讀出配置文件,然后調(diào)用configure函數(shù)。這里有兩個(gè)問(wèn)題:一、需要知道文件在哪里;二、需要正確的文件類型
3、配置文件位置在web.xml中配置一個(gè)param即可,路徑一般是相對(duì)于web的root目錄
4、文件類型一般有兩種,一個(gè)是java的property文件,另一種是xml文件
配置文件的大致內(nèi)容:log4j可以指定輸出的log級(jí)別的最低等級(jí),以及l(fā)og的輸出配置格式,每個(gè)log可以指定多個(gè)輸出方式

(1)創(chuàng)建web工程,整個(gè)工程最后目錄如下

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

(2)web.xml配置如下:

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 id="webapp_id" version="3.0">
 <display-name>loglearning</display-name>
 
 <servlet>
 <servlet-name>log4jtestservlet</servlet-name>
 <servlet-class>com.mucfc.log4jtestservlet</servlet-class>
 </servlet>
 
 <!--用來(lái)啟動(dòng) log4jconfiglocation的servlet -->
 <servlet>
 <servlet-name>log4jinitservlet</servlet-name>
 <servlet-class>com.mucfc.log4jinitservlet</servlet-class>
 <init-param>
  <param-name>log4j-properties-location</param-name>
  <param-value>/web-inf/classes/log4j.properties</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>
 
 <servlet-mapping>
 <servlet-name>log4jtestservlet</servlet-name>
 <url-pattern>/test</url-pattern>
 </servlet-mapping>
 
</web-app>

(3)配置文件log4j.properties

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
### 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 = [%-5p] %d{yyyy-mm-dd hh:mm:ss,sss} method:%l%n%m%n
 
 
log4j.appender.d = org.apache.log4j.dailyrollingfileappender
log4j.appender.d.file = f://logs/log.log
log4j.appender.d.append = true
log4j.appender.d.threshold = 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.e = org.apache.log4j.dailyrollingfileappender
log4j.appender.e.file =f://logs/error.log
log4j.appender.e.append = true
log4j.appender.e.threshold = error
log4j.appender.e.layout = org.apache.log4j.patternlayout
log4j.appender.e.layout.conversionpattern = %-d{yyyy-mm-dd hh:mm:ss} [ %t:%r ] - [ %p ] %m%n

(4)web容器一來(lái)就初始化的servlet

log4jinitservlet.java

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import java.io.file;
import java.io.ioexception;
 
import javax.servlet.servletconfig;
import javax.servlet.servletcontext;
import javax.servlet.servletexception;
import javax.servlet.annotation.webservlet;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
 
import org.apache.log4j.basicconfigurator;
import org.apache.log4j.propertyconfigurator;
 
/**
 * servlet implementation class log4jinitservlet
 */
@webservlet("/log4jinitservlet")
public class log4jinitservlet extends httpservlet {
 private static final long serialversionuid = 1l;
  
 /**
 * @see httpservlet#httpservlet()
 */
 public log4jinitservlet() {
 super();
 // todo auto-generated constructor stub
 }
 
 /**
 * @see servlet#init(servletconfig)
 */
 public void init(servletconfig config) throws servletexception {
 system.out.println("log4jinitservlet 正在初始化 log4j日志設(shè)置信息");
 string log4jlocation = config.getinitparameter("log4j-properties-location");
 
 servletcontext sc = config.getservletcontext();
 
 if (log4jlocation == null) {
  system.err.println("*** 沒(méi)有 log4j-properties-location 初始化的文件, 所以使用 basicconfigurator初始化");
  basicconfigurator.configure();
 } else {
  string webapppath = sc.getrealpath("/");
  string log4jprop = webapppath + log4jlocation;
  file yomamayesthissaysyomama = new file(log4jprop);
  if (yomamayesthissaysyomama.exists()) {
  system.out.println("使用: " + log4jprop+"初始化日志設(shè)置信息");
  propertyconfigurator.configure(log4jprop);
  } else {
  system.err.println("*** " + log4jprop + " 文件沒(méi)有找到, 所以使用 basicconfigurator初始化");
  basicconfigurator.configure();
  }
 }
 super.init(config);
 }
 
 /**
 * @see httpservlet#doget(httpservletrequest request, httpservletresponse response)
 */
 protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
 // todo auto-generated method stub
 }
 
 /**
 * @see httpservlet#dopost(httpservletrequest request, httpservletresponse response)
 */
 protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
 // todo auto-generated method stub
 }
 
}

調(diào)用日志log4jtestservlet,java

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.io.ioexception;
 
import javax.servlet.servletconfig;
import javax.servlet.servletexception;
import javax.servlet.annotation.webservlet;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
 
import org.apache.log4j.logger;
 
/**
 * servlet implementation class log4jtestservlet
 */
@webservlet("/log4jtestservlet")
public class log4jtestservlet extends httpservlet {
 private static final long serialversionuid = 1l;
 private static logger logger = logger.getlogger(log4jtestservlet.class);
  
 /**
 * @see httpservlet#httpservlet()
 */
 public log4jtestservlet() {
 super();
 // todo auto-generated constructor stub
 }
 
 /**
 * @see servlet#init(servletconfig)
 */
 public void init(servletconfig config) throws servletexception {
 // todo auto-generated method stub
 }
 
 /**
 * @see httpservlet#doget(httpservletrequest request, httpservletresponse response)
 */
 protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
 // 記錄debug級(jí)別的信息
 logger.debug("this is debug message.");
 // 記錄info級(jí)別的信息
 logger.info("this is info message.");
 // 記錄error級(jí)別的信息
 logger.error("this is error message.");
 }
 
 /**
 * @see httpservlet#dopost(httpservletrequest request, httpservletresponse response)
 */
 protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
 doget(request,response);
 }
 
}

接下來(lái)就是運(yùn)行了,來(lái)看看結(jié)果:

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

輸出結(jié)果:

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

四、spring中使用log4j

這里要實(shí)現(xiàn)web項(xiàng)目中利用spring來(lái)使用log4j

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

(1)接上面的工程,然后再導(dǎo)入spring的包
(2)web.xml增加

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 設(shè)置根目錄 -->
 <context-param>
 <param-name>webapprootkey</param-name>
 <param-value>webapp.root</param-value>
 </context-param>
 
 <context-param>
 <param-name>log4jconfiglocation</param-name>
 <param-value>/web-inf/classes/log4j.properties</param-value>
</context-param>
<!-- 3000表示 開(kāi)一條watchdog線程每60秒掃描一下配置文件的變化;這樣便于日志存放位置的改變 -->
<context-param>
 <param-name>log4jrefreshinterval</param-name>
 <param-value>3000</param-value>
 </context-param>
<listener>
 <listener-class>org.springframework.web.util.log4jconfiglistener</listener-class>
</listener>

整個(gè)內(nèi)容如下:

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 id="webapp_id" version="3.0">
 <display-name>loglearning</display-name>
 
 <servlet>
 <servlet-name>log4jtestservlet</servlet-name>
 <servlet-class>com.mucfc.log4jtestservlet</servlet-class>
 </servlet>
 
 <!--用來(lái)啟動(dòng) log4jconfiglocation的servlet -->
<!-- <servlet>
 <servlet-name>log4jinitservlet</servlet-name>
 <servlet-class>com.mucfc.log4jinitservlet</servlet-class>
 <init-param>
  <param-name>log4j-properties-location</param-name>
  <param-value>/web-inf/classes/log4j.properties</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>-->
 
 <servlet-mapping>
 <servlet-name>log4jtestservlet</servlet-name>
 <url-pattern>/test</url-pattern>
 </servlet-mapping>
 
 <!-- spring 容器加載 -->
 <listener>
 <listener-class>org.springframework.web.context.contextloaderlistener</listener-class>
 </listener>
 <context-param>
 <param-name>contextconfiglocation</param-name>
 <param-value>classpath:applicationcontext.xml</param-value>
 </context-param>
 
 <!-- 設(shè)置根目錄 -->
 <context-param>
 <param-name>webapprootkey</param-name>
 <param-value>webapp.root</param-value>
 </context-param>
 
 <context-param>
 <param-name>log4jconfiglocation</param-name>
 <param-value>/web-inf/classes/log4j.properties</param-value>
 </context-param>
 <!-- 3000表示 開(kāi)一條watchdog線程每60秒掃描一下配置文件的變化;這樣便于日志存放位置的改變 -->
 <context-param>
  <param-name>log4jrefreshinterval</param-name>
  <param-value>3000</param-value>
 </context-param>
 <listener>
 <listener-class>org.springframework.web.util.log4jconfiglistener</listener-class>
 </listener>
 
</web-app>

這里log4jinitservlet.java就相當(dāng)于沒(méi)用到了。

(2)applicationcontext.xml
沒(méi)有內(nèi)容:

 
?
1
 
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xsi:schemalocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
  http://www.springframework.org/schema/aop
  http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-3.2.xsd">
</beans>

(3)這樣日志就跟隨spring窗口啟動(dòng)而啟動(dòng)了

程序一運(yùn)行,就會(huì)自動(dòng)把日志打印

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

log.log

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

error.log為空,因?yàn)樗淮蛴rror級(jí)別以上的信息

瀏覽器輸入http://localhost:8080/loglearning2/test

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

然后打開(kāi)文件

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

Log4j詳細(xì)使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 免费一级片 | 曰本人一级毛片免费完整视频 | av一区在线 | 国产精品99久久久久久www | av网站免费在线观看 | 亚洲午夜精品毛片成人播放器 | 爱操在线| 国产成人av在线 | 中文字幕在线观看av | 国产精品无码久久久久 | 久久av网 | 日韩精品一区二区三区在线观看视频网站 | 亚洲国产一区二区在线观看 | 一本一道久久a久久精品逆3p | 一区视频 | 久久综合av| 日韩一区中文字幕 | 国产一区二区三区四区在线观看 | 国产三区在线视频 | 亚洲在线精品视频 | 精品粉嫩超白一线天av | 亚洲视频在线观看网址 | 欧洲一级毛片 | 永久91嫩草亚洲精品人人 | 蜜桃一区 | 色久视频| 欧美一区二区激情视频 | 日本中文字幕一区 | 毛片在线网址 | 精品欧美 | 91精品久久久久久 | 国产三级网站 | 亚洲欧美中文字幕 | 91精品国产91久久久久久吃药 | 日韩黄网| 国产欧美一区二区三区在线看 | 欧美日韩中文字幕 | 久久中文字幕一区 | 日韩日韩日韩日韩日韩日韩 | 欧美国产在线视频 | 狠狠操网站 |