如何记录 Jasper Reports (Log4j2.xml Config) 进行调试?
How to log Jasper Reports (Log4j2.xml Config) for debugging?
我需要调试 Jasper Reports 才能知道为什么我的报告显示为空,嗯,它只显示静态信息,加上传递的参数,但我有一个子报告应该列出一些信息这部分是空的。
根据网络中的一些示例,我使用了以下 log4j2.xml 配置文件,但是:
- 我没有创建日志文件,好吧,文件已创建但它仍然是空的。
- 如何配置以从 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" 添加了记录器,但我猜有些地方配置不当。
- 是否应该设置任何 属性 让 Jasper Reports 知道它必须记录其内部错误?
- 我应该在 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
我需要调试 Jasper Reports 才能知道为什么我的报告显示为空,嗯,它只显示静态信息,加上传递的参数,但我有一个子报告应该列出一些信息这部分是空的。
根据网络中的一些示例,我使用了以下 log4j2.xml 配置文件,但是:
- 我没有创建日志文件,好吧,文件已创建但它仍然是空的。
- 如何配置以从 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" 添加了记录器,但我猜有些地方配置不当。
- 是否应该设置任何 属性 让 Jasper Reports 知道它必须记录其内部错误?
- 我应该在 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