Replace 'transform.skipped' logger with 'printUntransformed' property

This commit is contained in:
yushijinhun 2018-12-29 20:49:50 +08:00
parent 7f541a02e6
commit 57e145d7da
No known key found for this signature in database
GPG key ID: 5BC167F73EA558E4
4 changed files with 11 additions and 4 deletions

View file

@ -36,7 +36,6 @@ gradle
调试信息类型有:
* `launch` 有关 authlib-injector 加载的
* `transform` 有关字节码修改的
* `transform.skipped` 分析了却未执行字节码修改的类(用于性能分析)
* `config` 有关配置获取的
* `httpd` 有关本地 HTTP 服务器的(其负责在本地处理掉部分请求,而不是发送到 Yggdrasil 服务端)
* `authlib` 打印从 authlib 处获取的日志(其记录了网络调用的详细信息)

View file

@ -69,6 +69,11 @@ public final class AuthlibInjector {
*/
public static final String PROP_DUMP_CLASS = "authlibinjector.dumpClass";
/**
* Whether to print the classes that are bytecode-analyzed but not transformed.
*/
public static final String PROP_PRINT_UNTRANSFORMED_CLASSES = "authlibinjector.printUntransformed";
/**
* The side that authlib-injector runs on.
* Possible values: client, server.

View file

@ -15,10 +15,14 @@ import java.util.logging.Level;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import moe.yushi.authlibinjector.AuthlibInjector;
import moe.yushi.authlibinjector.util.Logging;
public class ClassTransformer implements ClassFileTransformer {
private static final boolean PRINT_UNTRANSFORMED_CLASSES = Boolean.getBoolean(AuthlibInjector.PROP_PRINT_UNTRANSFORMED_CLASSES);
public List<TransformUnit> units = new ArrayList<>();
public List<ClassLoadingListener> listeners = new ArrayList<>();
public Set<String> ignores = new HashSet<>();
@ -97,8 +101,8 @@ public class ClassTransformer implements ClassFileTransformer {
listeners.forEach(it -> it.onClassLoading(loader, className, handle.getFinalResult(), handle.getAppliedTransformers()));
Optional<byte[]> transformResult = handle.getTransformResult();
if (!transformResult.isPresent()) {
Logging.TRANSFORM_SKIPPED.fine("No transformation is applied to [" + className + "]");
if (PRINT_UNTRANSFORMED_CLASSES && !transformResult.isPresent()) {
Logging.TRANSFORM.fine("No transformation is applied to [" + className + "]");
}
return transformResult.orElse(null);
} catch (Throwable e) {

View file

@ -23,7 +23,6 @@ public final class Logging {
public static final Logger LAUNCH = Logger.getLogger(PREFIX + ".launch");
public static final Logger CONFIG = Logger.getLogger(PREFIX + ".config");
public static final Logger TRANSFORM = Logger.getLogger(PREFIX + ".transform");
public static final Logger TRANSFORM_SKIPPED = Logger.getLogger(PREFIX + ".transform.skipped");
public static final Logger HTTPD = Logger.getLogger(PREFIX + ".httpd");
private static Predicate<String> debugLoggerNamePredicate;