GLA*_*GLA 10 debugging jasper-reports ireport
目前我正在使用iReport进行设计的第一份报告.在某些条件下,jasper陷入某种infinte循环/递归调用.贾斯珀的日志反复出现:
[...]
12-04-10 10:29:59,222 DEBUG s.engine.fill.JRVerticalFiller|Fill 1207280802: page footer
12-04-10 10:29:59,222 DEBUG ports.engine.fill.JRBaseFiller|Fill 1207280802: adding page 38849
12-04-10 10:29:59,222 DEBUG ts.engine.fill.JRFillSubreport|Fill 1207280802: resuming 849817670
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notifying to continue
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: waiting for fill result
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notified to continue
12-04-10 10:29:59,222 DEBUG ports.engine.fill.JRBaseFiller|Fill 849817670: suspeding subreport runner
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notifying on suspend
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: waiting to continue
12-04-10 10:29:59,222 DEBUG e.fill.JRThreadSubreportRunner|Fill 849817670: notified of fill result
12-04-10 10:29:59,222 DEBUG ts.engine.fill.JRFillSubreport|Fill 1207280802: subreport 849817670 to continue
[...]
Run Code Online (Sandbox Code Playgroud)
使用相同的填充ID重复记录此序列.我在解释这些调试日志时遇到了困难.除了解决具体问题,我对调试jasper报告的策略感兴趣.那么,你如何调试报告?
小智 6
您可以使用它log4j.properties从iReport获取一些其他信息.Jasper支持向我提供了以下步骤,以帮助我查看具有多个子报告和在它们之间传递动态SQL的报告生成的SQL.
创建一个log4j.properties文件(放在其下ireport/etc),内容如下:
#############################################
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=C:/tmp/iReport.log
log4j.appender.fileout.MaxFileSize=1024KB
log4j.appender.fileout.MaxBackupIndex=1
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.conversionPattern=%d{ABSOLUTE} %5p
%c{1},%t:%L - %m%n
log4j.rootLogger=warn, fileout
log4j.logger.net.sf.jasperreports.engine.query=debug
#############################################
Run Code Online (Sandbox Code Playgroud)
使用上面的内容,输出日志将iReport.log位于c:/tmp
文件夹中.
ireport/etc/ireportpro.conf在default_options参数中编辑并添加以下内容
:
-J-Dlog4j.configuration=file:/E:/Server/Server451/ireport/etc/log4j.properties
Run Code Online (Sandbox Code Playgroud)
所以它变成:
default_options="-J-Xms24m -J-Xmx512m
-J-Dorg.netbeans.ProxyClassLoader.level=1000 -J-XX:MaxPermSize=256m
-J-Dlog4j.configuration=file:/E:/Server/Server451/ireport/etc/log4j.properties"
Run Code Online (Sandbox Code Playgroud)
请注意以上目录,您需要将其调整到您自己的iReport安装目录.
重新启动iReport并执行报告,然后输出生成的SQL iReport.log.
| 归档时间: |
|
| 查看次数: |
20264 次 |
| 最近记录: |