forked from MirrorHub/authlib-injector
Replace 'transform.skipped' logger with 'printUntransformed' property
This commit is contained in:
parent
7f541a02e6
commit
57e145d7da
4 changed files with 11 additions and 4 deletions
|
@ -36,7 +36,6 @@ gradle
|
|||
调试信息类型有:
|
||||
* `launch` 有关 authlib-injector 加载的
|
||||
* `transform` 有关字节码修改的
|
||||
* `transform.skipped` 分析了却未执行字节码修改的类(用于性能分析)
|
||||
* `config` 有关配置获取的
|
||||
* `httpd` 有关本地 HTTP 服务器的(其负责在本地处理掉部分请求,而不是发送到 Yggdrasil 服务端)
|
||||
* `authlib` 打印从 authlib 处获取的日志(其记录了网络调用的详细信息)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue