Я пытаюсь запутать мое приложение java, которое использует библиотеку log4j для удаленной регистрации (SocketAppender). Но после того, как запутывание завершено, и я пытаюсь запустить обфусцированный jar, подключение к удаленному журналу не устанавливается, и я получаю следующие предупреждения:
log4j:WARN No such property [reconnectionDelay] in org.apache.log4j.net.SocketAppender.
log4j:WARN No such property [port] in org.apache.log4j.net.SocketAppender.
log4j:WARN No such property [remoteHost] in org.apache.log4j.net.SocketAppender.
Я использую средство запутывания zelix klassmaster со следующими настройками:
classpath
"/classpath/javax.jms-api-2.0.jar"
"/classpath/mail-1.4.jar"
"/classpath/log4j-1.2.17.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/ext/jfxrt.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/charsets.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/javaws.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jce.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jfr.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jfxswt.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/jsse.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/resources.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/rt.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/deploy.jar"
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/plugin.jar";
open "App.jar";
exclude javax.*.^* and
net.*. and
org.*. and
com.apple.*. and
com.sun.*. and
com.bulenkov.*.^* and
org.*.^* and
net.*.^* and
javafx.*.;
obfuscate changeLogFileIn=""
changeLogFileOut="ChangeLog.txt";
saveAll archiveCompression=all "/";
Я попытался возиться с настройками обфускации, превратив их все в false / none, но без эффекта. Если я удаляю весь блок obfuscate и затем запускаю сценарий, приложение работает нормально.
Это содержимое моего log4j.properties:
#Define the log4j configuration for local application
log4j.rootLogger=INFO, server
#We will use socket appender
log4j.appender.server=org.apache.log4j.net.SocketAppender
#Port where socket server will be listening for the log events
log4j.appender.server.Port=5555
#Host name or IP address of socket server
log4j.appender.server.RemoteHost=localhost
#Define any connection delay before attempting to reconnect
log4j.appender.server.ReconnectionDelay=10000
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.immediateFlush=true
log4j.appender.console.encoding=UTF-8
#log4j.appender.console.threshold=warn
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d [%t] %-5p %c - %m%n
Любая помощь будет принята с благодарностью !