Make the logging clean again (disable LegacyXMLLayout)

This commit is contained in:
khanhduytran0 2022-06-03 09:49:19 +07:00
parent ff819eeb28
commit 0a42459170
5 changed files with 70 additions and 3 deletions

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="SysOut" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<OnStartupTriggeringPolicy />
</Policies>
</Console>
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg{nolookups}%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="info">
<filters>
<MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL" />
</filters>
<AppenderRef ref="SysOut"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="SysOut" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<OnStartupTriggeringPolicy />
</Policies>
</Console>
<RollingRandomAccessFile name="File" fileName="logs/latest.log" filePattern="logs/%d{yyyy-MM-dd}-%i.log.gz">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
<Policies>
<TimeBasedTriggeringPolicy />
<OnStartupTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="info">
<filters>
<MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL" />
<RegexFilter regex="(?s).*\$\{[^}]*\}.*" onMatch="DENY" onMismatch="NEUTRAL"/>
</filters>
<AppenderRef ref="SysOut"/>
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>

View File

@ -337,6 +337,8 @@ public class PojavLoginActivity extends BaseActivity {
try { try {
new CustomControls(this).save(Tools.CTRLDEF_FILE); new CustomControls(this).save(Tools.CTRLDEF_FILE);
Tools.copyAssetFile(this, "components/security/log4j-rce-patch-1.7.xml", Tools.DIR_DATA, true);
Tools.copyAssetFile(this, "components/security/log4j-rce-patch-1.12.xml", Tools.DIR_DATA, true);
Tools.copyAssetFile(this, "components/security/pro-grade.jar", Tools.DIR_DATA, true); Tools.copyAssetFile(this, "components/security/pro-grade.jar", Tools.DIR_DATA, true);
Tools.copyAssetFile(this, "components/security/java_sandbox.policy", Tools.DIR_DATA, true); Tools.copyAssetFile(this, "components/security/java_sandbox.policy", Tools.DIR_DATA, true);
Tools.copyAssetFile(this, "options.txt", Tools.DIR_GAME_NEW, false); Tools.copyAssetFile(this, "options.txt", Tools.DIR_GAME_NEW, false);

View File

@ -163,7 +163,11 @@ public final class Tools {
*/ */
if (versionInfo.logging != null) { if (versionInfo.logging != null) {
javaArgList.add("-Dlog4j.configurationFile=" + Tools.DIR_GAME_NEW + "/" + versionInfo.logging.client.file.id); String configFile = Tools.DIR_DATA + "/" + versionInfo.logging.client.file.id.replace("client", "log4j-rce-patch");
if (!new File(configFile).exists()) {
configFile = Tools.DIR_GAME_NEW + "/" + versionInfo.logging.client.file.id;
}
javaArgList.add("-Dlog4j.configurationFile=" + configFile);
} }
javaArgList.addAll(Arrays.asList(getMinecraftJVMArgs(versionName, gamedirPath))); javaArgList.addAll(Arrays.asList(getMinecraftJVMArgs(versionName, gamedirPath)));
javaArgList.add("-cp"); javaArgList.add("-cp");

View File

@ -136,8 +136,12 @@ public class MinecraftDownloaderTask extends AsyncTask<String, String, Throwable
// Patch the Log4J RCE (CVE-2021-44228) // Patch the Log4J RCE (CVE-2021-44228)
if (verInfo.logging != null) { if (verInfo.logging != null) {
outLib = new File(Tools.DIR_DATA, verInfo.logging.client.file.id.replace("client", "log4j-rce-patch"));
boolean useLocal = outLib.exists();
if (!useLocal) {
outLib = new File(Tools.DIR_GAME_NEW, verInfo.logging.client.file.id); outLib = new File(Tools.DIR_GAME_NEW, verInfo.logging.client.file.id);
if (outLib.exists()) { }
if (outLib.exists() && !useLocal) {
if(LauncherPreferences.PREF_CHECK_LIBRARY_SHA) { if(LauncherPreferences.PREF_CHECK_LIBRARY_SHA) {
if(!Tools.compareSHA1(outLib,verInfo.logging.client.file.sha1)) { if(!Tools.compareSHA1(outLib,verInfo.logging.client.file.sha1)) {
outLib.delete(); outLib.delete();