锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
姣斿鎴戞兂瑕佽瀹氭棩蹇椾繚瀛樺湪webapp/log
鍙傝冧簡緗戜笂璧勬枡錛?span class="Apple-converted-space">
http://hi.baidu.com/suofang/blog/item/6cf2befbd1ff07234f4aea90.html
涓嬮潰鏄紩鍏ュ唴瀹癸細
鏂規(guī)硶涓涓昏鏄墿灞曚簡log4j鐨凴ollingFileAppender綾伙紝鍏朵粬鐨凢ileAppender鍚屾牱閬撶悊銆傛墿灞曠殑鏂規(guī)硶錛屽氨鏄敤涓涓瓙綾誨幓瑕嗙洊setFile鏂規(guī)硶錛岃繖涓柟娉曞湪log4j璇誨彇閰嶇疆鏂囦歡鐢熸垚appender鐨勬椂鍊欒皟鐢紝浼犲叆鐨勫氨鏄厤緗枃浠朵腑鐨勮礬寰勶紝榪欐牱鎴戝氨鍙互鎸夌収鑷繁鐨勬兂娉曞湪璺緞鍓嶉潰鍔犱笂鏍硅礬寰勪簡銆傝繖縐嶆柟娉曞彲浠ュ湪log4j.properties涓敤鐩稿璺緞鑷敱閰嶇疆log4j.appender.A1.File灞炴ф潵鍐沖畾鐢熸垚鐨勬棩蹇楃浉瀵箇eb搴旂敤鏍圭洰褰曠殑浣嶇疆銆?span class="Apple-converted-space">
鏂規(guī)硶浜屾槸鍒╃敤鏈嶅姟鍣╲m涓凡緇忓瓨鍦ㄧ殑鐜鍙橀噺濡?{catalina.home}鏉ヨ緗浉瀵逛簬${catalina.home}鐨勬棩蹇楄礬寰勶紝鏃ュ織鍙兘鏀懼埌鏈嶅姟鍣ㄥ瓙鐩綍閲岋紝鑰屼笖濡傛灉鏄敤鐨勫叾瀹冩湇鍔″櫒錛屽垯瑕佹敼瀵瑰簲鐨勭幆澧冨彉閲忋傛鏂規(guī)硶騫沖彴縐繪涓嶆柟渚褲?span class="Apple-converted-space">
鏂規(guī)硶涓夋槸鎵╁睍ActionServlet綾伙紝瑕嗙洊鍏秈nit()鏂規(guī)硶錛屾柊鏂規(guī)硶涓澆鍏?span class="hilite1" style="background-color: rgb(255,255,0)">log4j.properties浣嶇疆鐨勫弬鏁幫紝鍙互鑷敱閰嶇疆log4j鐨勯厤緗枃浠剁殑鍚嶅瓧鍜屽瓨鏀句綅緗備篃鍙嚜鐢遍厤緗?span class="hilite1" style="background-color: rgb(255,255,0)">log4j鏃ュ織鏂囦歡鐨勭浉瀵逛簬褰撳墠搴旂敤鐨勮礬寰勩?span class="Apple-converted-space">
瀵逛簬絎笁涓柟娉曪紝浣滆呮彁鍑轟簡涓棶棰橈細
log4j閰嶇疆鏂囦歡鐨勪綅緗紝涓嶈鍏跺湪web-inf/classes鐩綍錛屽洜涓哄湪鍔犺澆姝ervlet涔嬪墠錛屾湇鍔″櫒濡倀omcat鍚姩鏃朵細鑷姩鎼滅儲web-inf鐩綍鍜?span class="hilite2" style="background-color: rgb(85,255,85)">web-inf/classes鐩綍涓?span class="hilite1" style="background-color: rgb(255,255,0)">log4j.properties鏂囦歡錛屽鏈夊垯鑷姩鍔犺澆銆?span class="hilite1" style="background-color: rgb(255,255,0)">log4j灞炴ф枃浠跺姞杞藉悗,鐢變簬璇ュ睘鎬ф枃浠朵腑log4j.appender.A1.File鐨勫肩敤鐨勬槸鐩稿璺緞錛岃嚜鍔ㄥ姞杞介厤緗究浼氬嚭閿欙細
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: WEB-INF\logs\bysxxglxt.log
(緋葷粺鎵句笉鍒版寚瀹氱殑璺緞銆?
灝界鍚庨潰鍔犺澆鎵╁睍鐨凙ctionServlet涓紜緗簡log4j灞炴ф枃浠跺茍姝e父鍔犺澆浜嗭紝浣嗚繕鏄姤鐨勮繖涓敊錛屾笉鐖界殑銆傚彧鏈夋洿鏀?span class="hilite1" style="background-color: rgb(255,255,0)">log4j灞炴ф枃浠跺悕瀛楁垨鑰呮洿鏀瑰叾瀛樻斁浣嶇疆錛岃鍏朵笉鑳借嚜鍔ㄥ姞杞戒簡錛屼笉榪囪繕鏄湁涓や釜璀﹀憡錛?span class="Apple-converted-space">
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
鏂扮殑鍙戠幇錛?span class="Apple-converted-space">
鐢變簬spring涔熶細鍔犺澆log4j.properties錛屽鏋滃姞杞戒笉鍒板氨寰鎺у埗鍙版墦log淇℃伅錛屾昏寰楁湁浜涚鐪鹼紝浜庢槸鎯沖姙娉曞幓鎺夈係pring鎻愪緵浜嗕竴涓狶og4jConfigListener錛屾湰韜氨鑳介氳繃web.xml涓厤緗潵鎸囧畾浣嶇疆鍔犺澆log4j閰嶇疆鏂囦歡鍜宭og杈撳嚭璺緞錛屾敞鎰忚listener闇瑕佹斁鍦╯pring鐨凩istener涔嬪墠銆?span class="Apple-converted-space">
浜嬪疄涓婏紝Log4jConfigListener鏇撮傚悎log4j鍦╳eb宸ョ▼涓嬌鐢紝鍘熷洜濡備笅錛?span class="Apple-converted-space">
1. 鍔ㄦ佺殑鏀瑰彉璁板綍綰у埆鍜岀瓥鐣ワ紝涓嶉渶瑕侀噸鍚疻eb搴旂敤錛屽銆奅ffective Enterprise Java銆嬫墍璇淬?span class="Apple-converted-space">
2. 鎶妉og鏂囦歡瀹氬湪 /WEB-INF/logs/ 鑰屼笉闇瑕佸啓緇濆璺緞銆?span class="Apple-converted-space">
鍥犱負 緋葷粺鎶妛eb鐩綍鐨勮礬寰勫帇鍏ヤ竴涓彨webapp.root鐨勭郴緇熷彉閲忋傝繖鏍峰啓log鏂囦歡璺緞鏃朵笉鐢ㄥ啓緇濆璺緞浜?
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log
3. 鍙互鎶?span class="hilite1" style="background-color: rgb(255,255,0)">log4j.properties鍜屽叾浠杙roperties涓璧鋒斁鍦?WEB-INF/ 錛岃屼笉鏄疌lass-Path銆?span class="Apple-converted-space">
4.log4jRefreshInterval涓?0000琛ㄧず 寮涓鏉atchdog綰跨▼姣?0縐掓壂鎻忎竴涓嬮厤緗枃浠剁殑鍙樺寲;
鍦╳eb.xml 娣誨姞
// 鍦ㄥ唴瀛樹腑鍒涘緩鍥捐薄
int width = 60, height = 20;
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
// 鑾峰彇鍥懼艦涓婁笅鏂?br /> Graphics g = image.getGraphics();
//鐢熸垚闅忔満綾?br /> Random random = new Random();
// 璁懼畾鑳屾櫙鑹?br />
g.setColor(getRandColor(200, 250));
g.fillRect(0, 0, width, height);
//璁懼畾瀛椾綋
g.setFont(new Font("Comic Sans MS", Font.PLAIN, 20));
//鐢昏竟妗?br />
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 闅忔満浜х敓155鏉″共鎵扮嚎錛屼嬌鍥捐薄涓殑璁よ瘉鐮佷笉鏄撹鍏跺畠紼嬪簭鎺㈡祴鍒?br />
g.setColor(getRandColor(160, 200));
for (int i = 0; i < 155; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x, y, x + xl, y + yl);
}
// 鍙栭殢鏈轟駭鐢熺殑璁よ瘉鐮?4浣嶆暟瀛?
String sRand = "";
for (int i = 0; i < 4; i++) {
String rand = String.valueOf(random.nextInt(10));
sRand += rand;
// 灝嗚璇佺爜鏄劇ず鍒板浘璞′腑
g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110)));
//璋冪敤鍑芥暟鍑烘潵鐨勯鑹茬浉鍚岋紝鍙兘鏄洜涓虹瀛愬お鎺ヨ繎錛屾墍浠ュ彧鑳界洿鎺ョ敓鎴?br />
g.drawString(rand, 13 * i + 6, 16);
}
// 灝嗚璇佺爜瀛樺叆SESSION
session.setAttribute("rand", sRand);
// 鍥捐薄鐢熸晥
g.dispose();
out.clear();
out = pageContext.pushBody();
// 杈撳嚭鍥捐薄鍒伴〉闈?br />
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
娉?瑕佸厛涓嬭澆com.swetake.util.Qrcode鍖?/span>