2

在这里,我在 Netbeans 的独立应用程序中使用 log4j API。日志正在控制台上打印,但不在 File.Log4j 文件中。源文件夹中存在文件。请帮助我!下面是我的 log4j.properties 文件

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");
    }
4

1 回答 1

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 框架。您可以在文档的配置部分找到有关此的信息。具体来说,由于您尝试使用属性文件,因此您需要执行以下操作(直接从文档中借用):

 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.");
   }
 }
于 2013-04-29T14:59:08.927 回答