運が悪かったので、EJBでlog4jを構成しようと数日間試みました。クラスパスで取得されない2つのプロパティファイルがあります。
docx4j.properties
docx4j.Log4j.Configurator.disabled=true
log4j.properties
org.docx4j.convert.out.pdf.viaXSLFO=INFO
docx4j.convert.out.pdf.viaXSLFO=INFO
logger.log4j.docx4j.convert.out.pdf.viaXSLFO=INFO
これらのファイルを可能なすべてのディレクトリに配置しようとしましたが、EJBのクラスパスにはありません。それらを親EARプロジェクトに入れてみましたが、これも機能しません。eclipseではファイルを配置できないため、EJBモジュールのルート以外のすべての場所に配置しようとしました(貼り付けることができず、ドラッグされたファイルのドロップターゲットではありません)。
これらのファイルをどこに置いて、EJBプロジェクトがPDFファイル全体に赤いDEBUGテキストを配置しないようにすることができますか?
プロパティファイルをEJBモジュールのルートに手動で移動した場合でも、log4jエラーが発生し、PDF出力にデバッグメッセージが出力されます。
SystemErr R log4j:WARN No appenders could be found for logger (org.docx4j.jaxb.NamespacePrefixMapperUtils).
SystemErr R log4j:WARN Please initialize the log4j system properly.
更新-log4j.debugの出力
O log4j: Using URL [file:/path/sbp_gen_mso/ejbModule/log4j.properties] for automatic log4j configuration.
O log4j: Reading configuration from URL file:/path/sbp_gen_mso/ejbModule/log4j.properties
O log4j: Could not find root logger information. Is this OK?
O log4j: Parsing for [docx4j.convert.out.pdf.viaXSLFO] with value=[OFF].
O log4j: Level token is [OFF].
O log4j: Category docx4j.convert.out.pdf.viaXSLFO set to OFF
O log4j: Handling log4j.additivity.docx4j.convert.out.pdf.viaXSLFO=[null]
O log4j: Finished configuring.
R log4j:WARN No appenders could be found for logger (org.docx4j.jaxb.NamespacePrefixMapperUtils).
R log4j:WARN Please initialize the log4j system properly.
これは、私が余分な「組織」を見逃していることを示しているようです。log4jプロパティキーにあります。しかし、疑問は残ります。それがログを構成する唯一の場所であるのに、なぜEclipseでプロパティファイルを作成したり、EJBのルートに移動したりできないのでしょうか。