2

我在使用带有文件日志记录的 log4j 时遇到问题。即使在网上搜索了很长时间后,我也无法让它工作。

我的 log4j.properties 文件:

  log4j.rootLogger = DEBUG, FILE
  log4j.appender.FILE=org.apache.log4j.FileAppender
  log4j.appender.FILE.File=log.out
  log4j.appender.FILE.ImmediateFlush=true
  log4j.appender.FILE.Append=true
  log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
  log4j.appender.FILE.layout.conversionPattern=%m%n

我的java生产者类:

@Singleton
public class Loggers {

   @Produces
   public Logger getLogger(InjectionPoint ip) throws IOException {
    Member member = ip.getMember();
    Class<?> declaredInClass=member.getDeclaringClass();
    Logger logger=Logger.getLogger(declaredInClass.getSimpleName());
    Properties props = new Properties();
    props.load(Loggers.class.getClassLoader().getResourceAsStream(("log4j.properties")));
    PropertyConfigurator.configure(props);
    logger.info("should be in the file but it is only in console");
    return logger;
   }
}

它只是创建空文件而不在那里记录的可能性是什么?但是,它会记录到控制台。

4

1 回答 1

0

尝试为您的记录器设置级别:

logger.setLevel(Level.ALL);
于 2013-08-19T13:23:11.977 回答