debugging - googletagmanager - google tag managerç
¿Cómo depurar los informes de jaspe? (1)
Actualmente estoy trabajando en mis primeros informes usando iReport para diseño. Bajo ciertas condiciones, jasper se atasca en una especie de llamada infinte loop / recursive. Registros de Jasper siguiendo varias veces:
[...]
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
[...]
Esta secuencia se registra repetidamente con identificaciones de relleno idénticas. Tengo dificultades para interpretar esos registros de depuración. Además de resolver el problema concreto, me interesan las estrategias para depurar los informes de jaspe. Entonces, ¿cómo se depuran los informes?
Puede usar log4j.properties
para obtener información adicional de iReport. Los siguientes pasos me fueron provistos por el soporte de Jasper para ayudarme a ver qué SQL estaba generando un informe con varios informes secundarios y un SQL dinámico que se pasaba entre ellos.
Cree un archivo
log4j.properties
(colóquelo enireport/etc
), con los contenidos de la siguiente manera:############################################# 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 #############################################
Con lo anterior, el registro de salida estará en
iReport.log
en la carpetac:/tmp
.Edite
ireport/etc/ireportpro.conf
y agregue los siguientes contenidos en el parámetrodefault_options
:-J-Dlog4j.configuration=file:/E:/Server/Server451/ireport/etc/log4j.properties
Entonces se convierte en:
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"
Preste atención al directorio anterior, deberá ajustarlo a su propio directorio específico de instalación de iReport.
Reinicie iReport y ejecute informes, el SQL generado se
iReport.log
eniReport.log
.