4

org.apache.commons.digester.Digester を静かにする方法を見つけようとしています。Ant を使用して、ビルド時に JRXML ファイルを jasper ファイル (JasperReports レポート) にコンパイルしています。クラスパスで利用可能な logback.xml と slf4j と jcl-over-slf4j があります。ただ配線がわかりません。

問題は、200 以上のレポートがあり、それらをコンパイルするときに Digester が DEBUG メッセージをログに記録しているため、55M のログ ファイルが発生し、ノイズが多すぎて実際のエラーを見つけることができないことです。DEBUG メッセージを抑制したいだけです。どんな助けでも大歓迎です。

ログ スニペット:

[jrc] 09:56:51.525 [main] DEBUG o.a.commons.digester.Digester.sax - setDocumentLocator(org.apache.xerces.parsers.AbstractSAXParser$LocatorProxy@543a586d)
[jrc] 09:56:51.525 [main] DEBUG o.a.commons.digester.Digester.sax - startDocument()
[jrc] 09:56:51.998 [main] DEBUG o.a.commons.digester.Digester.sax - startElement(,jasperReport,jasperReport)
[jrc] 09:56:51.998 [main] DEBUG org.apache.commons.digester.Digester -   Pushing body text ''
[jrc] 09:56:51.999 [main] DEBUG org.apache.commons.digester.Digester -   New match='jasperReport'
[jrc] 09:56:51.999 [main] DEBUG org.apache.commons.digester.Digester -   Fire begin() for FactoryCreateRule

アリのスニペット:

<taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask" classpathref="jasper.reports.path"/>
<jrc tempdir="${temp.dir}" destdir="${project.classes}">
<classpath refid="libs.path" />
<classpath refid="compile.class.path" />
<src>
<fileset dir="${project.jasper.dir}">
<include name="*.jrxml"/>
</fileset>
</src>
</jrc>
4

1 に答える 1

4

クラスパスにjcl-over-slf4jjar、slf4j jar、およびlogback jarがある場合は、クラスパスにlogback.xmlファイルを含めて、コモンズロギングをワイヤリングしてログバックを実行する必要があります。以下のようなものを含めると、ログレベルが減少し、出力が最小限に抑えられます。

<logger name="org.apache.commons.digester" additivity="false">
<level value="ERROR" />
<appender-ref ref="RootConsoleAppender" />
</logger>
<logger name="net.sf.jasperreports.engine" additivity="false">
<level value="ERROR" />
<appender-ref ref="RootConsoleAppender" />
</logger>
于 2010-06-28T20:12:33.950 に答える