展開プロセスを簡素化するためにone-jarパッケージャーを使用して配信しようとしているプロジェクトに問題があります。
パッケージングがなければ、すべてが正常に機能し、ロギング構成が完全にロードされますが、パッケージ内では、構成の一部のみが適用されます。
だから、ここに私が使用するlogging.propertiesがあります:
handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = C:\\MyPath\\logging.csv
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = my.package.logging.Formatter
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = my.package.logging.Formatter
そして、私のメインクラスでは、これをロードする方法は次のとおりです。
public class MainClass {
public static void main(final String[] args) {
try {
LogManager.getLogManager().readConfiguration(
new MainClass().getClass().getResourceAsStream("logging.properties"));
// main process goes here.
} catch(Exception e) {
// Exception handling
}
}
}
ログは正しいファイルに出力されるため、ログ レベルと FileHandler パターンはよく理解されていますが、行の XML 出力として、通常は CSV 形式を出力するため、フォーマッタが読み込まれていないと思われます。
クラスパスの問題に関連している可能性がありますか? 誰もこれを処理する方法を知っていますか?