ジャスパー レポートの 1 つにカスタム jar を含めましたが、正常に動作しています。デバッグの目的で、このカスタム jar のクラスに log4j/slf4j を実装して、レポートが Jaspersodt Studio でプレビューされるか、JasperSoft サーバーで実行されるようにします。ファイル内のログ ステートメントを確認できます。
現在、すべての構成を追加しましたが、ロガーがファイルに出力されていません。私の推測では、log4j がトリガーされていません。
1)他に必要な設定/構成はありますか?
2) Jaspersoft サーバーに log4j のデフォルト実装があり、さまざまなクエリのみをログに記録することを確認しました。カスタム jar ロガーも含めるように設定する特定の設定/ロガーはありますか? 以下のlog4j.propertiesは、私のmavenプロジェクト(カスタムjar)のリソースフォルダーに入れられます
log4j.rootLogger=DEBUG, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\log4j-application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
編集: 以下は Java コードです。これは jar にエクスポートされ、ジャスパー プロジェクトのクラスパスに追加されます。レポート チャートをプレビューすると、作成され、このカスタマイザーが実行されますが、指定したファイルにログ ステートメントが表示されません。上記のlog4j.properties:
public class BarChartDemo {
static Logger LOGGER = Logger.getLogger(BarChartDemo.class);
public void customize(JFreeChart chart, JRChart jasperChart) {
LOGGER.debug("debug");
LOGGER.info("info");
LOGGER.warn("warn");
LOGGER.error("error");
?/customizer code
}
}