2011-04-14 29 views
1

Spring 3.0 web應用程序。已經把下面的Log4j屬性在WAR文件的/ WEB-INF/classes目錄文件....Log4j - 編寫自己的日誌文件出現故障

log4j.rootLogger=DEBUG, A1 
log4j.appender.A1=org.apache.log4j.FileAppender 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 
log4j.appender.A1.File=C:\\Testing.log 

有一個表單控制器,經由記錄形式記錄項目...

@Controller 
@RequestMapping("/FlowPartOne") 
public class FlowPartOneFormController { 

    private final Logger logger = Logger.getLogger(this.getClass()); 

    @RequestMapping(method=RequestMethod.POST) 
    public String processForm(@ModelAttribute("pageOneData") PageOneData pageOneData) { 
     logger.info("Page One, Line One>" + pageOneData.getDataLineOne() + "<"); 
     logger.info("Page One, Line Two>" + pageOneData.getDataLineTwo() + "<"); 
     return "FlowPartOne"; 
    } 

} 

應用程序是Glassfish的3

當應用程序運行時,都會出現在日誌輸出下運行,但在GlassFish日誌目錄... \ GlassFish的\域\日誌\ server.log中。

我已經在C:驅動器上創建了日誌文件,但沒有被使用。

我對Log4J有點新,我做錯了什麼?

+0

什麼是屬性文件的名稱 – 2011-04-14 04:32:00

回答

1

如果在應用程序啓動之前Glassfish使用log4j本身,如果它將由它的類加載器加載運行,指向應用程序服務器日誌文件,因此您的配置文件根本不會被加載。

你可以嘗試在你的/ WEB-INF/lib中包含log4j.jar,這樣你就可以在你的應用的類加載器中加載你自己的私有副本,因爲在應用服務器中類加載本地類加載器優先父級(應用程序服務器)。

但它可能取決於應用程序服務器的類加載,我曾在JBoss上進行過額外的步驟,例如激活類加載器隔離。