Log4j SocketAppender и обфускация (ZKM) - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь запутать мое приложение 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

Любая помощь будет принята с благодарностью !

...