锘??xml version="1.0" encoding="utf-8" standalone="yes"?> (2)servlet鑼冨洿鍐呯殑鍙傛暟錛屽彧鑳藉湪servlet鐨刬nit()鏂規(guī)硶涓彇寰楋紝鍦╳eb.xml涓厤緗涓嬶細(xì) 鍦╯ervlet涓彲浠ラ氳繃浠g爜鍒嗗埆鍙栫敤錛?/p>
絎竴縐嶅弬鏁板湪servlet閲岄潰鍙互閫氳繃getServletContext().getInitParameter("context/param")寰楀埌
Commons-loggin鐨勭洰鐨勬槸涓?#8220;鎵鏈夌殑Java鏃ュ織瀹炵幇”鎻愪緵涓涓粺涓鐨勬帴鍙o紝瀹冭嚜韜殑鏃ュ織鍔熻兘騫沖父寮憋紙鍙湁涓涓畝鍗曠殑SimpleLog?錛夛紝鎵浠ヤ竴鑸笉浼?xì)鍗曠嫭鋴社敤瀹冦侺og4j鐨勫姛鑳介潪甯稿叏闈㈠己澶э紝鏄洰鍓嶇殑棣栭夈傛垜鍙戠幇鍑犱箮鎵鏈夌殑Java寮婧愰」鐩兘浼?xì)鐢ㄥ埌Log4j錛屼絾鎴戝悓鏃跺彂鐜幫紝鎵鏈夌敤鍒癓og4j鐨勯」鐩竴鑸篃鍚屾椂浼?xì)鐢ㄥ埌commons-loggin銆傛垜鎯籌紝澶у閮戒笉甯屾湜鑷繁鐨勯」鐩笌Log4j緇戝畾鐨勫お绱у瘑鍚с傚彟澶栦竴涓垜鑳芥兂鍒扮殑“鍚屾椂浣跨敤commons-logging鍜孡og4j”鐨勫師鍥犳槸錛岀畝鍖栦嬌鐢ㄥ拰閰嶇疆銆?
浜屻丆ommons-logging鑳藉府鎴戜滑鍋氫粈涔堬紵
鎻愪緵涓涓粺涓鐨勬棩蹇楁帴鍙o紝綆鍗曚簡鎿嶄綔錛屽悓鏃墮伩鍏嶉」鐩笌鏌愪釜鏃ュ織瀹炵幇緋葷粺绱у瘑鐨勮﹀悎錛屽緢璐村績鐨勫府鎴戜滑鑷姩閫夋嫨閫傚綋鐨勬棩蹇楀疄鐜扮郴緇?濡俵og4j,JDK鑷韓鐨勬棩蹇楀疄鐜扮被,SimpleLog)瀹冪敋鑷充笉闇瑕侀厤緗?
璇存槑濡備笅錛?/span>
1) 棣栧厛鍦╟lasspath涓嬪鎵捐嚜宸辯殑閰嶇疆鏂囦歡commons-logging.properties錛屽鏋滄壘鍒幫紝鍒欎嬌鐢ㄥ叾涓畾涔夌殑Log瀹炵幇綾伙紱
2) 濡傛灉鎵句笉鍒癱ommons-logging.properties鏂囦歡錛屽垯鍦ㄦ煡鎵炬槸鍚﹀凡瀹氫箟緋葷粺鐜鍙橀噺org.apache.commons.logging.Log錛屾壘鍒板垯浣跨敤鍏跺畾涔夌殑Log瀹炵幇綾伙紱
寤虹珛涓涓彨 錛欳ATALINA_OPTS 鐨勭幆澧冨彉閲?
緇欎粬鐨勫?錛?- Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog - Dorg.apache.commons.logging.simplelog.defaultlog = warn
3) 鍚﹀垯錛屾煡鐪媍lasspath涓槸鍚︽湁Log4j鐨勫寘錛屽鏋滃彂鐜幫紝鍒欒嚜鍔ㄤ嬌鐢↙og4j浣滀負(fù)鏃ュ織瀹炵幇綾伙紱
4) 鍚﹀垯錛屼嬌鐢↗DK鑷韓鐨勬棩蹇楀疄鐜扮被錛圝DK1.4浠ュ悗鎵嶆湁鏃ュ織瀹炵幇綾伙級(jí)錛?
5) 鍚﹀垯錛屼嬌鐢╟ommons-logging鑷繁鎻愪緵鐨勪竴涓畝鍗曠殑鏃ュ織瀹炵幇綾籗impleLog錛?
錛堜互涓婇『搴忎笉淇濊瘉瀹屽叏鍑嗙‘錛岃鍙傝冨畼鏂規(guī)枃妗o級(jí)
鍙錛宑ommons-logging鎬繪槸鑳芥壘鍒頒竴涓棩蹇楀疄鐜扮被錛屽茍涓斿敖鍙兘鎵懼埌涓涓?#8220;鏈鍚堥?#8221;鐨勬棩蹇楀疄鐜扮被銆傛垜璇村畠“寰堣創(chuàng)蹇?#8221;瀹為檯涓婃槸鍥犱負(fù)錛?
1銆佸彲浠ヤ笉闇瑕侀厤緗枃浠訛紱
2銆佽嚜鍔ㄥ垽鏂湁娌℃湁Log4j鍖咃紝鏈夊垯鑷姩浣跨敤涔嬶紱
3銆佹渶鎮(zhèn)茶鐨勬儏鍐典笅涔熸昏兘淇濊瘉鎻愪緵涓涓棩蹇楀疄鐜幫紙SimpleLog錛夈?
鍙互鐪嬪埌錛宑ommons-logging瀵圭紪紼嬭呭拰Log4j閮介潪甯稿弸濂姐?
涓夈丆ommons-logging緇撳悎Log4j
鍙渶灝哃og4j鐨凧ar鍖呭拰log4j.properties鏀劇疆鍒癱lasspash涓氨鍙互浜嗐傝繖鏍峰氨寰堢畝鍗曞湴瀹屾垚浜哻ommons-logging涓嶭og4j鐨勮瀺鍚堛傚鏋滀笉鎯崇敤Log4j浜嗘庝箞鍔烇紵鍙渶灝哻lasspath涓殑Log4j鐨凧ar鍖呭垹闄ゅ嵆鍙傚氨榪欎箞綆鍗曪紒
鍏蜂綋浠g爜濡備笅錛?/span>
搴旇娉ㄦ剰鍒幫紝鎴戜滑涓婇潰緇欏嚭鐨勬簮浠g爜錛屽畬鍏ㄦ病鏈夋秹鍙?qiáng)鍒癓og4j鈥斺旇繖姝f槸鎴戜滑鎵甯屾湜鐨勶紝榪欎篃姝f槸commons-logging鎵瑕佽揪鍒扮殑鐩爣涔嬩竴銆?
鍙槸錛屾庝箞鎵嶈兘璁㎜og4j鍙戞尌瀹冪殑浣滅敤鍛紵絳旀寰堢畝鍗曪紝鍙渶婊¤凍“classpath涓湁Log4j鐨刯ar鍖?#8221;銆傚墠闈㈠凡緇忚榪囦簡錛宑ommons-logging浼?xì)鑷姩鍙戠幇迤堝簲鐢↙og4j銆傛墍浠ュ彧瑕佸畠瀛樺湪錛屽畠?yōu)鍙戞尌浣滅敤銆傦紙瀹冧笉瀛樺湪鍛紵鑷劧灝變笉鍙戞尌浣滅敤錛宑ommons-logging浼?xì)鍙﹁閫夋嫨鍏跺畠鐨勬棩蹇楀疄鐜扮被銆傦級(jí)
鍥涖佸崟鐙嬌鐢↙og4j
import org.apache.log4j.Logger;
2 import org.apache.log4j.PropertyConfigurator;
3 public class TestLog4j {
4 static Logger logger = Logger.getLogger(TestLog4j. class ); // First step
5 public static void main(String args[]) {
6 PropertyConfigurator.configure( " log4j.properties " ); // Second step
7 logger.debug( " Here is some DEBUG " ); // Third step
8 logger.info( " Here is some INFO " );
9 logger.warn( " Here is some WARN " );
10logger.error( " Here is some ERROR " );
11logger.fatal( " Here is some FATAL " );
12}
13}
鎬葷粨
灝哻ommons-logging鍜孡og4j鐨刯ar鍖呴兘鏀劇疆鍒癱lasspath涓嬶紝鍚屾椂涔熷皢Log4j鐨勯厤緗枃浠舵斁鍒癱lasspath涓紝涓よ呭氨鍙互寰堝ソ鐨勫悎浣溿?
閲囩敤Log4j閰嶅悎commons-logging浣滀負(fù)鏃ュ織緋葷粺錛屾槸鐩墠Java棰嗗煙闈炲父闈炲父嫻佽鐨勬ā寮忥紝浣跨敤闈炲父闈炲父鐨勬櫘閬嶃備袱鑰呯殑緇撳悎甯︽潵鐨勭粨鏋滃氨鏄細(xì)綆鍗?+ 寮哄ぇ銆?
commons-logging鎻愪緵浜嗙畝鎹楓佺粺涓鐨勬帴鍙o紝涓嶉渶瑕侀澶栭厤緗紝綆鍗曪紱
Log4j鍔熻兘闈炲父鍏ㄩ潰銆佸己澶э紱
commons-logging浠呬粎瀵筁og4j(褰撶劧榪樺寘鎷叾瀹僉OG瀹炵幇)浣滀簡涓灞傚寘瑁咃紝鍏蜂綋鐨勬棩蹇楄緭鍑鴻繕鏄湪鍐呴儴杞氦緇欒韓鍚庣殑Log4j鏉ュ鐞嗭紱鑰孡og4j铏界劧鍋氫簡鎵鏈夌殑浜嬫儏錛屽嵈鐢樹綔緇垮彾錛屼粠涓嶄互鐪熻韓紺轟漢銆?
涓よ呭牚縐扮粷閰嶃?
浜斻佸log4j.properties鐨勪竴鐐逛粙緇?
涓嬮潰瀵筶og4j.properties鏂囦歡鍐呭浣滀竴鐐圭偣浠嬬粛錛屼互鍚庢枃鎵闄刲og4j.properties鏂囦歡涓轟緥錛?
闄ゅ幓浠?寮澶寸殑娉ㄩ噴浠ュ強(qiáng)絀鴻錛岀涓琛屾湁鐢ㄧ殑鍐呭鏄細(xì)
1 log4j.rootLogger = DEBUG, CONSOLE,A1
log4j.rootLogger鏄渶鏈閲嶈鐨勪竴涓睘鎬т簡錛屽畠瀹氫箟鏃ュ織淇℃伅鐨?#8220;杈撳嚭綰у埆”鍜?#8220;杈撳嚭鐩殑鍦?#8221;銆?
鍏抽敭鐪?#8220;=”鍚庨潰鐨勫鹼紝“DEBUG, CONSOLE,A1”榪欓噷鎴戜滑瑕佹妸瀹冨垎鎴愪袱閮ㄥ垎錛氱涓涓楀彿涔嬪墠鐨勬槸絎竴閮ㄥ垎錛屾寚瀹?#8220;杈撳嚭綰у埆”錛涘悗闈㈢殑鏄浜岄儴鍒嗭紝鎸囧畾“杈撳嚭鐩殑鍦?#8221;銆傚彲浠ュ悓鏃舵寚瀹氬涓?#8220;杈撳嚭鐩殑鍦?#8221;錛屼互閫楀彿闅斿紑銆?
鍏蜂綋鍒頒笂闈㈣繖涓琛岋細(xì)瀹冩寚瀹氱殑“杈撳嚭綰у埆”鏄?#8220;DEBUG”錛涘畠鎸囧畾鐨?#8220;杈撳嚭鐩殑鍦?#8221;鏄?#8220;CONSOLE”鍜?#8220;A1”銆?
娉ㄦ剰錛?
“杈撳嚭綰у埆”鏈夊彲閫夌殑浜斾釜鍊鹼紝鍒嗗埆鏄疍EBUG銆両NFO銆乄ARN銆丒RROR銆丗ATAL錛屽畠浠槸鐢盠og4j緋葷粺瀹氫箟鐨勩?
“杈撳嚭鐩殑鍦?#8221;灝辨槸鎴戜滑鑷繁瀹氫箟鐨勪簡錛屽氨鍦╨og4j.properties鐨勫悗闈㈤儴鍒嗭紝姝ゆ枃浠跺畾涔夌殑“杈撳嚭鐩殑鍦?#8221;鏈塁ONSOLE銆丗ILE銆丷OLLING_FILE銆丼OCKET銆丩F5_APPENDER銆丮AIL銆丏ATABASE銆丄1銆乮m銆傝鏂囦歡涔嬫墍浠ュ彲浣滀富妯℃澘錛屽氨鏄洜涓哄畠姣旇緝鍏ㄩ潰鍦板畾涔変簡鍚勭甯歌鐨勮緭鍑虹洰鐨勫湴錛堟帶鍒跺彴銆佹枃浠躲佺數(shù)瀛愰偖浠躲佹暟鎹簱絳夛級(jí)銆?
濂斤紝涓嬮潰璇︾粏瑙i噴“log4j.rootLogger=DEBUG, CONSOLE,A1”榪欎竴琛岋細(xì)
鎸囧畾“杈撳嚭綰у埆”鏄?#8220;DEBUG”錛屽嵆錛屼粎杈撳嚭綰у埆澶т簬絳変簬“璋冭瘯錛圖EBUG錛?#8221;鐨勬棩蹇椾俊鎭傚鏋滄澶勬寚瀹氱殑鏄?#8220;WARN”鍒欎粎璋冪敤warn()銆乪rror()銆乫atal()鏂規(guī)硶杈撳嚭鐨勬棩蹇椾俊鎭墠琚緭鍑哄埌“杈撳嚭鐩殑鍦?#8221;錛岃岃皟鐢╠ebug()銆乮nfo()鏂規(guī)硶杈撳嚭鐨勬棩蹇椾俊鎭笉琚緭鍑哄埌“杈撳嚭鐩殑鍦?#8221;銆傛槑鐧戒簡鍚楋紵Log4j灝辨槸浠ヨ繖縐嶆柟寮忔潵榪囨護(hù)鎺у埗鏃ュ織淇℃伅鐨勮緭鍑轟笌鍚︼紝榪欎篃鏄鏃ュ織淇℃伅榪涜綰у埆鍒嗙被鐨勭洰鐨勩?
鎸囧畾“杈撳嚭鐩殑鍦?#8221;鏄?#8220;CONSOLE”鍜?#8220;A1”錛屽嵆錛屽皢鎸囧畾鐨勬棩蹇椾俊鎭紙鏍規(guī)嵁鏃ュ織綰у埆宸茶繘琛屼簡榪囨護(hù)錛夊悓鏃惰緭鍑哄埌鐨?#8220;鎺у埗鍙?#8221;鍜?#8220;SampleMessages.log4j鏂囦歡”銆?
涓轟粈涔堣“CONSOLE”琛ㄧず灝嗘棩蹇椾俊鎭緭鍑哄埌“鎺у埗鍙?#8221;鍛紵閭e氨瑕佺湅涓涓嬪悗鏂囩殑瀹氫箟浜嗭細(xì)
# 搴旂敤浜庢帶鍒跺彴
1 log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
2 log4j.appender.Threshold = DEBUG
3 log4j.appender.CONSOLE.Target = System.out
4 log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
5 log4j.appender.CONSOLE.layout.ConversionPattern = [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n
6 #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
涓轟粈涔堣“A1”琛ㄧず灝嗘棩蹇椾俊鎭緭鍑哄埌“SampleMessages.log4j鏂囦歡”鍛紵榪樿鐪嬪悗鏂囩殑瀹氫箟錛?
1 log4j.appender.A1 = org.apache.log4j.DailyRollingFileAppender
2 log4j.appender.A1.File = SampleMessages.log4j
3 log4j.appender.A1.DatePattern = yyyyMMdd - HH ' .log4j '
4 log4j.appender.A1.layout = org.apache.log4j.xml.XMLLayout
娉ㄦ剰錛氳繖閲岀殑瀹氫箟娌℃湁鎸囧畾杈撳嚭鏂囦歡鐨勮礬寰勶紝瀹冪殑璺緞瀹為檯涓婃槸 java.user.path鐨勫箋?
鎮(zhèn)ㄥ簲璇ュ凡緇忔敞鎰忓埌錛屽湪瀹氫箟“杈撳嚭鐩殑鍦?#8221;鏃訛紝榪樺彲浠ユ寚瀹氭棩蹇楁牸寮忋佹椂闂淬佸竷灞絳夌浉鍏充俊鎭傜暐榪囥?
濂戒簡錛屾垜鍙互鏍規(guī)嵁闇瑕侊紝灝嗚繖涓琛屼慨鏀逛負(fù)錛?
1 log4j.rootLogger = ERROR, CONSOLE,FILE,MAIL
灝?#8220;閿欒錛圗RROR錛?#8221;鍙?#8220;鑷村懡閿欒錛團(tuán)ATAL錛?#8221;綰у埆鐨勬棩蹇椾俊鎭悓鏃惰緭鍑哄埌鎺у埗鍙般佹枃浠訛紝騫朵笖鍙戠數(shù)瀛愰偖浠跺悜緋葷粺綆$悊鍛樻姤鍛娿傛槸涓嶆槸寰堢埥錛燂紙濡傛灉灝?#8220;璋冭瘯錛圖EBUG錛?#8221;綰у埆鐨勬棩蹇椾俊鎭偖浠剁粰綆$悊鍛橈紝鎭愭曡繜鏃╀細(xì)鎶婁粬/濂圭殑閭娑ㄧ垎錛屽摢鎬曠敤鐨勬槸Gmail錛佸啀嬈$悊瑙d簡“灝嗘棩蹇椾俊鎭垎涓轟笉鍚岀駭鍒?#8221;鐨勬剰鍥句簡鍚э紵錛?
闄勶細(xì)涓涓湁鐢ㄧ殑log4j.properties鏂囦歡妯℃澘
##Log4J鐨勯厤緗箣綆鍗曚嬌瀹冮亶鍙?qiáng)浜幁憡鏉キ憡澶氱殑搴旂敤涓?
##Log4J閰嶇疆鏂囦歡瀹炵幇浜嗚緭鍑哄埌鎺у埗鍙般佹枃浠躲佸洖婊氭枃浠躲佸彂閫佹棩蹇楅偖浠躲佽緭鍑哄埌鏁版嵁搴撴棩蹇楄〃銆佽嚜瀹氫箟鏍囩絳夊叏濂楀姛鑳姐傛嫨鍏朵竴浜屼嬌鐢ㄥ氨澶熺敤浜嗐?
##姝ゆ枃浠訛紙log4j.properties錛夊唴瀹規(guī)潵鑷綉緇滐紝闈炴湰鏂囦綔鑰卨iigo鍘熷垱銆?
log4j.rootLogger = DEBUG, CONSOLE,A1
log4j.addivity.org.apache = true
# 搴旂敤浜庢帶鍒跺彴
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
#搴旂敤浜庢枃浠?
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
# 搴旂敤浜庢枃浠跺洖婊?
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
#搴旂敤浜巗ocket
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
# 鍙戦佹棩蹇楃粰閭歡
log4j.appender.MAIL = org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold = FATA
log4j.appender.MAIL.BufferSize = 10
log4j.appender.MAIL.From = web@www.wuset.com
log4j.appender.MAIL.SMTPHost = www.wusetu.com
log4j.appender.MAIL.Subject = Log4J Message
log4j.appender.MAIL.To = web@www.wusetu.com
log4j.appender.MAIL.layout = org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern = [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n
# 鐢ㄤ簬鏁版嵁搴?
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
#鑷畾涔堿ppender
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 = corlin@cybercorlin.net
log4j.appender.im.layout = org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern = [framework] % d - % c -%- 4r [ % t] %- 5p % c % x - % m % n
# 緇撴潫
Log4J鍙戞棩蹇楅偖浠剁粰澶氫釜鎺ユ敹鑰呭強(qiáng)鏍囬銆佹鏂囦貢鐮侀棶棰?
浠ュ墠寮鍙戠殑緋葷粺娌℃湁鍗曠嫭鐨勬棩蹇楃鐞嗭紝鎵鏈夌殑鏃ュ織緇熶竴杈撳嚭鍒皌omcat鍚庡彴涓涓枃浠墮噷錛屼笉鍑犲ぉ灝辨槸濂藉嚑G錛岀幇鍦ㄨ鏁翠綋澧炲姞涓涓狶og4J綆$悊鏃ュ織鐨勫姛鑳斤紝鍏跺疄榪欐柟闈㈢殑璧勬枡緗戜笂澶氱殑鏄傚彂閭歡鐨勯厤緗鏄庝篃鏈夛紝浣嗘槸鍏蜂綋鎬庝箞鍙戯紝涔辯爜闂鎬庝箞瑙e喅閭e氨姣旇緝?yōu)畱浜嗐?
鍒╃敤javamail鍙戦侀偖浠訛紝浣犻渶瑕佸鍏ュ寘mail.jar鍜宎ctivation.jar榪欎袱涓寘 錛屽惁鍒欐槸娌℃硶鍙戦偖浠剁殑 錛屼笅杈歸厤緗枃浠墮噷緇胯壊琛屾樉紺虹殑灝辨槸鍙戠粰涓や釜鎺ユ敹鑰卆c鍜宎e銆?
榪欓噷浼?xì)鍑虹庮C腑鏂囦貢鐮侀棶棰橈紝涓昏鏈変袱鏂歸潰鐨勪貢鐮侊紝涓鏄爣棰樹貢鐮侊紱浜屾槸姝f枃涔辯爜銆備笅杈瑰叿浣撹鏄庤繖涓ょ涔辯爜鐨勮В鍐蟲柟妗堛?
涓銆?鏍囬涔辯爜
Log4J鏃ュ織閭歡鐨勬爣棰樺湪閰嶇疆鏂囦歡log4j.properties閲岃瀹氾紝濡備笅
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=ab@163.com
log4j.appender.MAIL.SMTPHost=smtp@163.com
log4j.appender.MAIL.Subject= Log4J鎻愰啋鎮(zhèn)細(xì)緋葷粺鍙戠敓浜嗕弗閲嶉敊璇?log4j.appender.MAIL.To=ac@163.com,ae@163.com
log4j.appender.MAIL.layout=com.sun.DefineLayOut
log4j.appender.MAIL.layout.LocationInfo=true
緇胯壊鐨勮灝辨槸鏍囬錛宭og4J閰嶇疆鏂囦歡榛樿鐨勮鍙栨柟寮忔槸ISO-88591錛岄亣鍒頒腑鏂囦細(xì)鍑虹幇涔辯爜錛屾垜浠彲浠ユ妸榪欎釜閰嶇疆鏂囦歡log4j.properties鐢╦dk鐨勫伐鍏穘ative2asii杞崲涓涓嬬紪鐮佹柟寮忋?
鍛戒護(hù)錛歯ative2asii log4j.properties log4jxx.properties
鎶婅繖涓猯og4jxx.properties鏀瑰悕涓簂og4j.properties鍙栦唬鍘熸潵鐨刲og4j.properties灝眔k浜嗐?
鐏拌壊琛岄噸鏂扮紪鐮佸悗鏄細(xì)
log4j.appender.MAIL.Subject=Log4J\u63d0\u9192\u60a8\uff1a\u7cfb\u7edf\u53d1\u751f\u4e86\u4e25\u91cd\u9519\u8bef
浜屻?姝f枃涔辯爜
姝f枃涔辯爜錛岃В鍐充篃姣旇緝綆鍗曘傞槄璇籐og4J鐨勬簮鐮佺被SMTPAppender錛屾垜浠彲浠ュ彂鐜皊endBuffer()鏂規(guī)硶涓湁榪欐牱涓鍙ワ細(xì)
part.setContent(sbuf.toString(), layout.getContentType());
鎴戜滑緇х畫榪借釜鍙戠幇l(fā)ayout灝辨槸閰嶇疆鏂囦歡閲岀殑layout灞炴у搴旂殑甯冨眬妯″紡銆備絾鏄繖浜涘竷灞妯″紡閮芥槸緇ф壙鑷狶ayout錛岃宑ontentType鏄彧鍙氳繃getContentType鏂規(guī)硶鍙栧緱錛屼笉鑳戒慨鏀廣傛墍鏈夌殑甯冨眬妯″紡getContentType鏂規(guī)硶榪斿洖鐨勯兘鏄?#8221;text/plain”錛?
涓哄鐞嗕腑鏂囦貢鐮侊紝鎴戜滑鍙互鍐欎竴涓竷灞妯″紡銆傚鏋滀綘瑕佷嬌鐢℉TMLLayout錛屾垜浠氨鍐欎竴涓狧TMLLayout鐨勫瓙綾伙紝瑕嗙洊HTMLLayout鐨刧etContentType鏂規(guī)硶鍗沖彲銆傚亣濡傛垜瑕佺敤org.apache.log4j.HTMLLayout銆傛垜浠氨鍙互鍐欎竴涓狣efineLayOut綾伙紝浠g爜濡備笅錛?
package com.sun;
import org.apache.log4j.HTMLLayout;
public class DefineLayOut extends HTMLLayout{
public String getContentType() {
return "text/html;charset=GBK";
}
}
瀵瑰簲鐨勯厤緗枃浠惰緗綰㈣壊琛屾墍紺恒?
]]>
<context-param>
<param-name>context/param</param-name>
<param-value>avalible during application</param-value>
</context-param>
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.wes.controller.MainServlet</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>avalible in servlet init()</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
package com.wes.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class MainServlet extends HttpServlet ...{
public MainServlet() ...{
super();
}
public void init() throws ServletException ...{
System.out.println("涓嬮潰鐨勪袱涓弬鏁皃aram1鏄湪servlet涓瓨鏀劇殑");
System.out.println(this.getInitParameter("param1"));
System.out.println("涓嬮潰鐨勫弬鏁版槸瀛樻斁鍦╯ervletcontext涓殑");
System.out.println(getServletContext().getInitParameter("context/param"));
}
}
絎簩縐嶅弬鏁板彧鑳藉湪servlet鐨刬nit()鏂規(guī)硶涓氳繃this.getInitParameter("param1")鍙栧緱
]]>
]]>
<set-property property="contextConfigLocation"
value="classpath*:spring/*.xml"/>
</plug-in>
榪欐牱瀛愮殑璇漇truts灝辮兘璋冪敤鐢盨pring鐢熸垚鐨凙ction綾匯?br>
浣嗘槸
濡傛灉鍐欐垚錛?br><plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>
鍒欐槸榛樿閰嶇疆鏂囦歡涓哄湪WEB-INF涓嬬殑action-servlet.xml鏂囦歡錛屽彲鍦╝ction-servlet.xml涓啀鎴叆鍚勪釜action bean鐨勯厤緗紝濡備笅灝辨槸涓涓猘ction-servlet.xml鐨勪緥瀛愶細(xì)
2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
3 <beans default-autowire="byName" default-lazy-init="true">
4 <!-- 鍚庡彴綆$悊妯″潡 -->
5 <import resource="modules/spring-config-admin.xml"/>
6 <!-- 涔﹀簵鍓嶅彴妯″潡 -->
7 <import resource="modules/spring-config-shop.xml"/>
8 </beans>
9
]]>
]]>
]]>
鍦ㄦ枃浠跺す鍔犱笂{21EC2020-3AEA-1069-A2DD-08002B30309D}榪欎釜鍚庣紑
渚嬪錛氭父鎴?{21EC2020-3AEA-1069-A2DD-08002B30309D},涔嬪悗闅忎究鎬庝箞鐐歸兘鍙兘榪涘叆鎺у埗闈㈡澘錛?br>淇敼鍚庡浘鏍囦篃鍙樻垚鎺у埗闈㈡澘涓鏍蜂簡!!
銆銆瑕佹敼鍥炲彧瑕佺敤winrar鎵懼埌榪欎釜鏂囦歡澶癸紝鍘繪帀{21EC2020-3AEA-1069-A2DD-08002B30309D}榪欎釜鍚庣紑鍗沖彲銆傝繖鎷涜繛鎼滅儲(chǔ)閮芥壘涓嶅埌鏀硅繃鍚庢枃浠跺す涓殑涓滆タ,鍙︿竴涓柟娉?鍙互榪愯cmd 閫氳繃dir鎵懼埌鎵鍦ㄤ綅緗?鍙湅鍒版鏃舵枃浠跺す鍚嶅強(qiáng)鍏跺悗緙鍐嶈緭鍏?ren (鍘熸枃浠跺す鍚? (鏂版枃浠跺す鍚? 灝監(jiān)K浜嗐?/p>
鏂規(guī)硶浜岋細(xì)
絎竴姝ワ紝鐐?#8220;寮濮?榪愯”錛岄敭鍏?#8220;cmd”錛屾墦寮鍛戒護(hù)鎻愮ず絎︼紱
絎簩姝ワ紝鍒涘緩浣犳墍瑕佸姞瀵嗙殑鏂囦歡澶廣傚鍦‥鐩樻牴鐩綍涓嬪垱寤篴bc鏂囦歡澶癸紝閿叆浠ヤ笅鍐呭錛歁D E:\abc..\ 鍚庯紝鍥炶濺錛?
絎笁姝ワ紝鍦‥鐩樻牴鐩綍涓嬬殑abc.鏂囦歡澶逛笂鍙屽嚮錛屼綘浼?xì)鍙戠幇鏍规湰鎵撲笉寮錛屽茍浼?xì)寮瑰嚭濡備笅鍥剧殑鎻惤C猴紝褰撶劧榪欏氨鏄垜浠兂瑕佺殑鍟?錛?錛夛紱
絎洓姝ワ紝鐐?#8220;寮濮?榪愯”錛岄敭鍏?#8220;E:\abc..\”錛屽啀鐐?#8220;紜畾”錛屾庝箞鏍鳳紝鏄笉鏄墦寮浜嗭紵錛佽繖鏃跺欎綘鍙互鎶婁綘瑕佹斁鍏:\abc..\鏂囦歡澶歸噷鐨勬枃浠剁矘璐磋繘鍘誨嵆鍙紒閫氳繃1~4姝ワ紝宸茬粡瀹屾垚鍔犲瘑榪囩▼銆?
絎簲姝ワ紝鍒犻櫎E:\abc..\鏂囦歡澶廣傜偣“寮濮?榪愯”錛岄敭鍏?#8220;cmd”錛屾墦寮鍛戒護(hù)鎻愮ず絎︼紝閿叆RD E:\abc..\ 鍗沖彲鍒犻櫎錛佹敞錛氬鏋淓:\abc..\ 鏂囦歡澶歸噷鏈夋枃浠訛紝鍒欐棤娉曞垹闄わ紝璇峰洖鍒扮鍥涙鍒犻櫎閲岄潰鎵鏈夋枃浠跺悗榪涜絎簲姝ユ楠ゆ柟鍙垹闄わ紒濡備笅鍥撅細(xì)
絎叚姝ワ紝涓轟簡涓嶈嫻忚鑰呬笉鎰熻鍒拌繖鏄┖鐨勬枃浠跺す錛屽彲浠ョ矘璐翠竴浜涙棤鍏崇揣瑕佺殑鏂囦歡榪涘幓榪鋒儜璁塊棶鑰咃紒
浠ヤ笂鍙槸鍦ㄤ嬌鐢ㄧ數(shù)鑴戣繃紼嬩腑鐨勪竴鐐瑰皬緇忛獙錛岀幇鍦ㄥ叡浜嚭鏉ワ紝鎴栬鑳界粰澶у涓浜涘府鍔╋紒
娉ㄦ剰錛屾娉曞彧鏄竴涓畝鏄撳姞瀵嗘硶錛屾噦寰桪OS鐭ヨ瘑鐨勬垨鐭ラ亾姝ゆ硶鐨勫彲浠ヨ交鏄撶牬瑙f墦寮錛屽洜姝わ紝姝ゆ硶鍙傜敤涓鑸渶瑕佸姞瀵嗙殑鏂囦歡錛屼笉閫傜敤閲嶈鏂囦歡鐨勫姞瀵嗭紒