如何记录 Jasper Reports (Log4j2.xml Config) 进行调试?

How to log Jasper Reports (Log4j2.xml Config) for debugging?

我需要调试 Jasper Reports 才能知道为什么我的报告显示为空,嗯,它只显示静态信息,加上传递的参数,但我有一个子报告应该列出一些信息这部分是空的。

根据网络中的一些示例,我使用了以下 log4j2.xml 配置文件,但是:

  1. 我没有创建日志文件,好吧,文件已创建但它仍然是空的。
  2. 如何配置以从 Jasper Reports 获取输出调试?如果子报告为空,我想它一定是在某个地方失败了,所以我需要发现发生了什么。

这是我的 log4j2.xml 配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
    <Properties>
        <Property name="basePath">E:\logs</Property>
    </Properties>

    <Appenders>
        <RollingFile name="fileLogger" fileName="${basePath}/urnavirtual.log" filePattern="${basePath}/urnavirtual-%d{yyyy-MM-dd}.log">
            <PatternLayout>
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
        </RollingFile>

        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout   pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="net.sf.jasperreports" level="ALL" additivity="false">
            <appender-ref ref="fileLogger" level="ALL" />
        </Logger>
        <Root level="ALL" additivity="false">
            <appender-ref ref="console" />
        </Root>
    </Loggers>
</Configuration>

在我的上次测试中,我使用 "net.sf.jasperreports" 添加了记录器,但我猜有些地方配置不当。

  1. 是否应该设置任何 属性 让 Jasper Reports 知道它必须记录其内部错误?
  2. 我应该在 log4j2.xml 文件中使用哪些更改才能成功记录 Jasper 报告错误

我在 Java 8.

中使用 Eclipse Neon

这是我的第一个问题,如果我不清楚或者我违反任何 Whosebug 规则,我深表歉意。

非常感谢,

已编辑: 我已经有 log4j,但即使使用 level=DEBUG,我在日志中也没有调试输出。

由于 jasper reports 使用的是 log4j,您需要使用 log4j 2 的桥接器才能正常工作。 尝试添加 log4j-1.2-api.jar: apache page for the bridge

maven 详细信息,如果你使用它:maven repository