JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java Tools  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 關於 log4j 的問題
drinks





發文: 6
積分: 0
於 2009-01-20 14:29 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
請問
log4j 可以針對 不同的class產生的log輸出至不同的 file嗎?

以下是我的 設定檔


log4j.rootLogger=info, sendMail

log4j.appender.sendMail=org.apache.log4j.RollingFileAppender
log4j.appender.sendMail.File=${user.home}/sendMail.log
# 每個 log 檔最大 size 限制
log4j.appender.sendMail.MaxFileSize=1024KB
# 保留幾個備份檔
log4j.appender.sendMail.MaxBackupIndex=3
log4j.appender.sendMail.layout=org.apache.log4j.PatternLayout
# 輸出型樣: date priority [category] - <message>line_separator
log4j.appender.sendMail.layout.ConversionPattern=%d %p [%c-%l] - <%m>%n
#我的email程式 設定為 error才產生log
log4j.logger.com.test.emal=ERROR


我想要的作法是 有關寄信程式的log 產生到sendMail.log
其他的log 產生到其他地方(例如 console) 就可以了
不過 我這樣的設定 會別的類別也會在 sendmail.log裡

請問 log4j 有方法可以設定不同的類別(套件)產生的 log 分別儲存嗎?
感謝回答!


reply to postreply to post
作者 Re:關於 log4j 的問題 [Re:drinks]
chih0812





發文: 629
積分: 0
於 2009-01-20 14:36 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
不要設定 rootLogger,直接設定子類別
因為所有子類別都會繼承 root,如果設了 rootLogger,會讓子類別也影響到


reply to postreply to post
SCJP, SCWCD, SCBCD, NCLP, OCUP
作者 Re:關於 log4j 的問題 [Re:chih0812]
drinks





發文: 6
積分: 0
於 2009-01-20 14:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
chih0812 wrote:
不要設定 rootLogger,直接設定子類別
因為所有子類別都會繼承 root,如果設了 rootLogger,會讓子類別也影響到


感謝你的回答!
那請問 我把這行
#log4j.rootLogger=info, sendMail
#改成這樣 是不能用的
log4j.Logger=info, sendMail
log4j.appender.sendMail=org.apache.log4j.RollingFileAppender
log4j.appender.sendMail.File=${user.home}/sendMail.log
# 每個 log 檔最大 size 限制
log4j.appender.sendMail.MaxFileSize=1024KB
# 保留幾個備份檔
log4j.appender.sendMail.MaxBackupIndex=3
log4j.appender.sendMail.layout=org.apache.log4j.PatternLayout
# 輸出型樣: date priority [category] - <message>line_separator
log4j.appender.sendMail.layout.ConversionPattern=%d %p [%c-%l] - <%m>%n
#我的email程式 設定為 error才產生log
log4j.logger.com.test.emal=ERROR

恩...我把rootLogger 拿掉後
就有錯誤訊息
Please initialize the log4j system properly.
顯然這樣設定是完全錯誤的,(沒有log4j.Logger吧)
我想要 某個套件(或類別)輸出至相關的xxx.log(分門別類)
請問有 不要rootLogger,直接設定子類別 的寫法
或是相關範例嗎?
再次感謝你的回答,感謝!


reply to postreply to post
作者 Re:關於 log4j 的問題 [Re:drinks]
chih0812





發文: 629
積分: 0
於 2009-01-20 15:26 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
底下設定兩個 logger,各自不會影響彼此
(mylog, filelog)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
log4j.logger.mylog=INFO, stdout,R
# stdout config
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 [%t (%d)] (%F:%L)   %m%n
 
#R will output logs in one log file
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=C:\yourfilename.log
log4j.appender.R.MaxFileSize= 2000KB
log4j.appender.R.MaxBackupIndex=3
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%5p [%t(%d)] %c{1}:%L - %m%n
 
############################################################################
log4j.logger.filelog=ERROR, F
# F config
log4j.appender.F=org.apache.log4j.ConsoleAppender
log4j.appender.F.Target=System.out
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=%m%n


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package log4jdemo;
 
import org.apache.log4j.Logger;
 
/**
 *
 * @author VDRockyWang
 */
public class Main {
 
    static Logger logger = Logger.getLogger("mylog");
    static Logger filelogger = Logger.getLogger("filelog");
 
    public static void main(String[] args) {
        
        logger.info("mylog info");
        logger.error("mylog error");
 
        filelogger.info("filelog info");
        filelogger.error("filelog error");
    }
}
 


reply to postreply to post
SCJP, SCWCD, SCBCD, NCLP, OCUP
作者 Re:關於 log4j 的問題 [Re:drinks]
drinks





發文: 6
積分: 0
於 2009-01-20 18:20 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
感謝你,
造你的寫法,
我的問題已經解決!
非常感謝!


reply to postreply to post
作者 Re:關於 log4j 的問題 [Re:drinks]
julian





發文: 13
積分: 0
於 2009-02-05 09:42 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
其實不必再程式裡面做兩個loger, 請參考

http://www.javaworld.com.tw/jute/post/view?bid=11&id=140942&sty=3&age=0&tpg=1&ppg=1#140942


reply to postreply to post
作者 Re:關於 log4j 的問題 [Re:drinks]
julian





發文: 13
積分: 0
於 2009-02-05 09:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
其實不必在程式裡面做兩個logger, 請參考

http://www.javaworld.com.tw/jute/post/view?bid=11&id=140942&sty=3&age=0&tpg=1&ppg=1#140942


reply to postreply to post
» JWorld@TW »  Java Tools

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8