1

我为我的一个 jasper 报告包含了一个自定义 jar,它工作正常。现在出于调试目的,我想在这个自定义 jar 中的类中实现 log4j/slf4j,以便在 Jaspersodt Studio 中预览报告或在 JasperSoft 服务器上运行时我可以在文件中看到日志记录语句。

现在我已经添加了所有配置,但记录器没有在文件中打印。我的猜测是 log4j 没有被触发。

1)是否需要更多设置/配置?

2)我检查了 Jaspersoft 服务器是否有 log4j 的默认实现,它记录但只记录各种查询。是否有任何特定的设置/记录器要设置,以便它也包括自定义 jar 记录器? 下面的 log4j.properties 被放入我的 Maven 项目的资源文件夹(自定义 jar)

  log4j.rootLogger=DEBUG, stdout, file


  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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


  log4j.appender.file=org.apache.log4j.RollingFileAppender
  log4j.appender.file.File=C:\\log4j-application.log
  log4j.appender.file.MaxFileSize=5MB
  log4j.appender.file.MaxBackupIndex=10
  log4j.appender.file.layout=org.apache.log4j.PatternLayout
  log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

编辑:下面是 Java 代码。它在 jar 中导出并添加到我的 jasper 项目的类路径中。当我预览我的报告图表时,我的报告图表被创建并且这个定制器被执行,但我没有在我给出的文件中看到任何日志语句上面的 log4j.properties :

public class BarChartDemo {
static Logger LOGGER = Logger.getLogger(BarChartDemo.class);
   public void customize(JFreeChart chart, JRChart jasperChart) {
             LOGGER.debug("debug");
             LOGGER.info("info");
             LOGGER.warn("warn");
             LOGGER.error("error");
             ?/customizer code
    }
  }
4

0 回答 0