这里我在Netbeans中的独立应用程序中使用log4j API.Logs在控制台上打印但不在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");
}
答案 0 :(得分: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.");
}
}