2013-04-29 68 views
1

在這裏我在Netbeans中使用獨立應用程序中的log4j API。日誌正在控制檯上打印,但不在File.Log4j文件中存在於源文件夾中。請幫助我! 下面是我的log4j.properties文件Log4j:日誌在控制檯上顯示,但文件沒有得到更新

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.file.layout.ConversionPattern=%d %5p %c{1}\:%L - %m%n 
log4j.appender.file.File=E:\\Final\\Testing123.log 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.DatePattern`enter code here`='.'yyyy-MM-dd 
log4j.logger.testing=DEBUG, stdout, file 
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1}\:%L - %m%n 
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.Target=System.out 

及以下就是我使用它的類。

public class Test { 
    protected static Logger logger = LoggerFactory.getLogger(Testing.class.getName()); 

    public static void main(String[] args) { 

     logger.debug("Test Log1"); 
     Test t = new Test(); 
     logger.debug("Test Log2"); 
     //t.setLogPropertyFile(); 
     logger.debug("Test Log3"); 
     t.testthis(); 
     logger.debug("Test Log4"); 
    } 

    public void testthis(){ 
     this.logger.debug("Test Log"); 
     this.logger.info("Test Log"); 
     this.logger.warn("Test Log"); 
     this.logger.error("Test Log"); 
    } 

回答

2

它看起來像你的問題是在這裏:

log4j.appender.file.DatePattern`enter code here`='.'yyyy-MM-dd 

可能複製/粘貼的東西,但它應該是這樣的:

log4j.appender.file.DatePattern='.'yyyy-MM-dd 

此外,它的一個更容易看看發生了什麼,如果你組織配置文件:

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=%d %5p %c{1}\:%L - %m%n 

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.File=E:\\Final\\Testing123.log 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d %5p %c{1}\:%L - %m%n 
log4j.appender.file.DatePattern='.'yyyy-MM-dd 

log4j.logger.testing=DEBUG, stdout, file 

----編輯----

如果作爲獨立的Java應用程序運行,則需要在啓動時配置log4j框架。您可以在the documentation配置部分找到關於此的信息。特別是,因爲你試圖用一個屬性文件,你需要做這樣的事情(直接從文檔借用):

import com.foo.Bar; 

import org.apache.log4j.Logger; 
import org.apache.log4j.PropertyConfigurator; 

public class MyApp { 

    static Logger logger = Logger.getLogger(MyApp.class.getName()); 

    public static void main(String[] args) { 


    // BasicConfigurator replaced with PropertyConfigurator. 
    PropertyConfigurator.configure(args[0]); 

    logger.info("Entering application."); 
    Bar bar = new Bar(); 
    bar.doIt(); 
    logger.info("Exiting application."); 
    } 
} 
+0

嗨,我嘗試了用this..but取代舊的仍然沒有工作。這裏的日誌文件正在創建,但沒有他正在寫入它..空白:-( – Rohan 2013-04-29 15:07:27

+0

對不起...文件也沒有得到創建...只是日誌來控制檯.. – Rohan 2013-04-29 15:12:10

+0

你是確定你的log4j是從你的屬性文件初始化的?你可能會看到默認的日誌記錄去stdout。試着改變你的記錄器到:'log4j.logger.testing = ERROR,stdout,file'並確保只有錯誤信息被記錄。 – Lucas 2013-04-29 15:16:15

相關問題