【问题标题】:How to log Jasper Reports (Log4j2.xml Config) for debugging?如何记录 Jasper 报告(Log4j2.xml 配置)以进行调试?
【发布时间】:2016-08-21 17:52:41
【问题描述】:

我需要调试 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。

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

非常感谢,

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

【问题讨论】:

  • 您好,Alex,感谢您抽出宝贵时间,不,不是重复的;您指出的线程,在他们建议使用 log4j 的该线程的唯一答案中,不同之处在于我已经在使用它,但是我无法看到调试消息,而 Tonakai 回答我能够查看日志中的调试消息。 Tonakai 回答标记为已接受。

标签: java debugging jasper-reports log4j log4j2


【解决方案1】:

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

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

【讨论】:

  • 非常感谢 Tonakai,添加了 log4j-1.2-api.jar,现在在日志中显示调试消息。 :)
  • 你好@tonakai,甚至认为这适用于 jasper 报告其他附加程序没有写入日志文件,正如我所说的那样,它们已创建但没有输出。你知道吗,这可能是什么?我应该开始另一个线程来问这个吗?
  • 嗨@OZWolverine 我想您可以创建另一个问题,不确定您当前的配置如何,因此无法发表太多评论,但也许可以尝试从写入单个文件/控制台的简单配置开始,然后尝试从那里进行调整。您的某些组件可能正在使用您可能需要其他桥梁的其他日志记录框架。
  • 您好@tonakai,谢谢,我将使用完整的 log4j.xml 配置发布另一个问题,也许您或其他社区成员可以帮助我。问候。
猜你喜欢
  • 2015-03-28
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多