Commit 91f621aecc5766c6bf7f6456e4a15a35ed695687

Authored by Mumfrey
1 parent d71dab5e

add verbosity levels to logger to support reduced log output on server

java/common/com/mumfrey/liteloader/api/manager/APIRegistry.java
... ... @@ -14,6 +14,7 @@ import com.mumfrey.liteloader.api.exceptions.InvalidAPIStateException;
14 14 import com.mumfrey.liteloader.launch.LoaderEnvironment;
15 15 import com.mumfrey.liteloader.launch.LoaderProperties;
16 16 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  17 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
17 18  
18 19 /**
19 20 * This is where we register API classes during early startup before baking the registered list into an
... ... @@ -56,7 +57,7 @@ public final class APIRegistry
56 57  
57 58 if (!this.registeredAPIClasses.contains(apiClass))
58 59 {
59   - LiteLoaderLogger.info("Registering API provider class %s", apiClass);
  60 + LiteLoaderLogger.info(Verbosity.REDUCED, "Registering API provider class %s", apiClass);
60 61 this.registeredAPIClasses.add(apiClass);
61 62 }
62 63 }
... ... @@ -86,7 +87,7 @@ public final class APIRegistry
86 87  
87 88 if (!this.instances.containsKey(identifier))
88 89 {
89   - LiteLoaderLogger.info("API provider class '%s' provides API '%s'", apiClassName, identifier);
  90 + LiteLoaderLogger.info(Verbosity.REDUCED, "API provider class '%s' provides API '%s'", apiClassName, identifier);
90 91 this.instances.put(identifier, api);
91 92 return api;
92 93 }
... ... @@ -124,7 +125,7 @@ public final class APIRegistry
124 125  
125 126 for (LiteAPI api : allAPIs)
126 127 {
127   - LiteLoaderLogger.info("Initialising API '%s' ...", api.getIdentifier());
  128 + LiteLoaderLogger.info(Verbosity.REDUCED, "Initialising API '%s' ...", api.getIdentifier());
128 129 api.init(this.environment, this.properties);
129 130 }
130 131  
... ...
java/common/com/mumfrey/liteloader/core/LiteLoader.java
... ... @@ -53,6 +53,7 @@ import com.mumfrey.liteloader.permissions.PermissionsManagerServer;
53 53 import com.mumfrey.liteloader.transformers.event.EventTransformer;
54 54 import com.mumfrey.liteloader.util.Input;
55 55 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  56 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
56 57  
57 58 /**
58 59 * LiteLoader is a simple loader which loads and provides useful callbacks to
... ... @@ -817,7 +818,7 @@ public final class LiteLoader
817 818 {
818 819 int totalMods = this.enumerator.modsToLoadCount();
819 820 int totalTweaks = this.enumerator.getInjectedTweaks().size();
820   - LiteLoaderLogger.info("Discovered %d total mod(s), injected %d tweak(s)", totalMods, totalTweaks);
  821 + LiteLoaderLogger.info(Verbosity.REDUCED, "Discovered %d total mod(s), injected %d tweak(s)", totalMods, totalTweaks);
821 822  
822 823 if (totalMods > 0)
823 824 {
... ... @@ -826,7 +827,7 @@ public final class LiteLoader
826 827 }
827 828 else
828 829 {
829   - LiteLoaderLogger.info("No mod classes were found. Not loading any mods.");
  830 + LiteLoaderLogger.info(Verbosity.REDUCED, "No mod classes were found. Not loading any mods.");
830 831 }
831 832  
832 833 // Initialises the required hooks for loaded mods
... ... @@ -939,7 +940,7 @@ public final class LiteLoader
939 940  
940 941 private void onShutDown()
941 942 {
942   - LiteLoaderLogger.info("LiteLoader is shutting down, shutting down core providers and syncing configuration");
  943 + LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader is shutting down, shutting down core providers and syncing configuration");
943 944  
944 945 this.shutdownObservers.all().onShutDown();
945 946  
... ... @@ -991,14 +992,14 @@ public final class LiteLoader
991 992  
992 993 static final void invokeInit()
993 994 {
994   - LiteLoaderLogger.info("LiteLoader begin INIT...");
  995 + LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader begin INIT...");
995 996  
996 997 LiteLoader.instance.onInit();
997 998 }
998 999  
999 1000 static final void invokePostInit()
1000 1001 {
1001   - LiteLoaderLogger.info("LiteLoader begin POSTINIT...");
  1002 + LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader begin POSTINIT...");
1002 1003  
1003 1004 LiteLoader.instance.onPostInit();
1004 1005 }
... ...
java/common/com/mumfrey/liteloader/core/LiteLoaderBootstrap.java
... ... @@ -32,6 +32,7 @@ import com.mumfrey.liteloader.launch.LoaderEnvironment;
32 32 import com.mumfrey.liteloader.launch.LoaderProperties;
33 33 import com.mumfrey.liteloader.launch.StartupEnvironment;
34 34 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  35 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
35 36  
36 37 /**
37 38 * LiteLoaderBootstrap is responsible for managing the early part of the LiteLoader startup process, this is
... ... @@ -272,20 +273,20 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP
272 273 this.classLoader = classLoader;
273 274 this.loadTweaks = loadTweaks;
274 275  
275   - LiteLoaderLogger.info("LiteLoader begin PREINIT...");
  276 + LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader begin PREINIT...");
276 277  
277 278 // Set up the bootstrap
278 279 if (!this.prepare()) return;
279 280  
280   - LiteLoaderLogger.info("LiteLoader %s starting up...", LiteLoaderVersion.CURRENT.getLoaderVersion());
  281 + LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader %s starting up...", LiteLoaderVersion.CURRENT.getLoaderVersion());
281 282  
282 283 // Print the branding version if any was provided
283 284 if (this.branding != null)
284 285 {
285   - LiteLoaderLogger.info("Active Pack: %s", this.branding);
  286 + LiteLoaderLogger.info(Verbosity.REDUCED, "Active Pack: %s", this.branding);
286 287 }
287 288  
288   - LiteLoaderLogger.info("Java reports OS=\"%s\"", System.getProperty("os.name").toLowerCase());
  289 + LiteLoaderLogger.info(Verbosity.REDUCED, "Java reports OS=\"%s\"", System.getProperty("os.name").toLowerCase());
289 290  
290 291 this.enabledModsList = EnabledModsList.createFrom(this.enabledModsFile);
291 292 this.enabledModsList.processModsList(this.profile, modsToLoad);
... ... @@ -293,7 +294,7 @@ class LiteLoaderBootstrap implements LoaderBootstrap, LoaderEnvironment, LoaderP
293 294 this.enumerator = this.spawnEnumerator(classLoader);
294 295 this.enumerator.onPreInit();
295 296  
296   - LiteLoaderLogger.info("LiteLoader PREINIT complete");
  297 + LiteLoaderLogger.info(Verbosity.REDUCED, "LiteLoader PREINIT complete");
297 298 }
298 299  
299 300 /**
... ...
java/common/com/mumfrey/liteloader/core/LiteLoaderEnumerator.java
... ... @@ -34,6 +34,7 @@ import com.mumfrey.liteloader.launch.LiteLoaderTweaker;
34 34 import com.mumfrey.liteloader.launch.LoaderEnvironment;
35 35 import com.mumfrey.liteloader.launch.LoaderProperties;
36 36 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  37 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
37 38  
38 39 /**
39 40 * The enumerator performs all mod discovery functions for LiteLoader, this includes locating mod files to load
... ... @@ -521,7 +522,7 @@ public class LiteLoaderEnumerator implements LoaderEnumerator
521 522 {
522 523 this.checkState(EnumeratorState.DISCOVER, "registerDisabledContainer");
523 524  
524   - LiteLoaderLogger.info(reason.getMessage(container));
  525 + LiteLoaderLogger.info(Verbosity.REDUCED, reason.getMessage(container));
525 526  
526 527 this.enabledContainers.remove(container.getIdentifier());
527 528 this.disabledContainers.put(container.getIdentifier(), new NonMod(container, false));
... ... @@ -539,7 +540,7 @@ public class LiteLoaderEnumerator implements LoaderEnumerator
539 540  
540 541 if (!container.isEnabled(this.environment))
541 542 {
542   - LiteLoaderLogger.info("Mod %s is disabled for profile %s, not injecting tranformers", container.getIdentifier(), this.environment.getProfile());
  543 + LiteLoaderLogger.info(Verbosity.REDUCED, "Mod %s is disabled for profile %s, not injecting tranformers", container.getIdentifier(), this.environment.getProfile());
543 544 return false;
544 545 }
545 546  
... ... @@ -575,10 +576,10 @@ public class LiteLoaderEnumerator implements LoaderEnumerator
575 576 {
576 577 String tweakClass = container.getTweakClassName();
577 578 int tweakPriority = container.getTweakPriority();
578   - LiteLoaderLogger.info("Mod file '%s' provides tweakClass '%s', adding to Launch queue with priority %d", container.getName(), tweakClass, tweakPriority);
  579 + LiteLoaderLogger.info(Verbosity.REDUCED, "Mod file '%s' provides tweakClass '%s', adding to Launch queue with priority %d", container.getName(), tweakClass, tweakPriority);
579 580 if (this.tweaker.addCascadedTweaker(tweakClass, tweakPriority))
580 581 {
581   - LiteLoaderLogger.info("tweakClass '%s' was successfully added", tweakClass);
  582 + LiteLoaderLogger.info(Verbosity.REDUCED, "tweakClass '%s' was successfully added", tweakClass);
582 583 container.injectIntoClassPath(this.classLoader, true);
583 584  
584 585 if (container.isExternalJar())
... ... @@ -616,10 +617,10 @@ public class LiteLoaderEnumerator implements LoaderEnumerator
616 617 {
617 618 for (String classTransformerClass : classTransformerClasses)
618 619 {
619   - LiteLoaderLogger.info("Mod file '%s' provides classTransformer '%s', adding to class loader", container.getName(), classTransformerClass);
  620 + LiteLoaderLogger.info(Verbosity.REDUCED, "Mod file '%s' provides classTransformer '%s', adding to class loader", container.getName(), classTransformerClass);
620 621 if (this.tweaker.getTransformerManager().injectTransformer(classTransformerClass))
621 622 {
622   - LiteLoaderLogger.info("classTransformer '%s' was successfully added", classTransformerClass);
  623 + LiteLoaderLogger.info(Verbosity.REDUCED, "classTransformer '%s' was successfully added", classTransformerClass);
623 624 container.injectIntoClassPath(this.classLoader, true);
624 625 }
625 626 }
... ... @@ -711,7 +712,7 @@ public class LiteLoaderEnumerator implements LoaderEnumerator
711 712 catch (OutdatedLoaderException ex)
712 713 {
713 714 classes.clear();
714   - LiteLoaderLogger.info("Error searching in '%s', missing API component '%s', your loader is probably out of date", container, ex.getMessage());
  715 + LiteLoaderLogger.info(Verbosity.REDUCED, "Error searching in '%s', missing API component '%s', your loader is probably out of date", container, ex.getMessage());
715 716 }
716 717 catch (Throwable th)
717 718 {
... ... @@ -868,7 +869,7 @@ public class LiteLoaderEnumerator implements LoaderEnumerator
868 869 circularDependencySet.add(base.getIdentifier());
869 870  
870 871 boolean result = this.checkDependencies(base, base, circularDependencySet);
871   - LiteLoaderLogger.info("Dependency check for %s %s", base.getIdentifier(), result ? "passed" : "failed");
  872 + LiteLoaderLogger.info(Verbosity.REDUCED, "Dependency check for %s %s", base.getIdentifier(), result ? "passed" : "failed");
872 873  
873 874 return result;
874 875 }
... ...
java/common/com/mumfrey/liteloader/core/LiteLoaderInterfaceManager.java
... ... @@ -18,6 +18,7 @@ import com.mumfrey.liteloader.core.event.HandlerList;
18 18 import com.mumfrey.liteloader.interfaces.FastIterable;
19 19 import com.mumfrey.liteloader.interfaces.InterfaceRegistry;
20 20 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  21 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
21 22  
22 23 /**
23 24 * The interface manager handles the allocation of interface consumers (implementors) to interface providers. During
... ... @@ -247,7 +248,7 @@ public class LiteLoaderInterfaceManager implements InterfaceRegistry
247 248 {
248 249 for (InterfaceProvider provider : apiInterfaceProviders)
249 250 {
250   - LiteLoaderLogger.info("Registering interface provider %s for API %s", provider.getClass().getName(), api.getName());
  251 + LiteLoaderLogger.info(Verbosity.REDUCED, "Registering interface provider %s for API %s", provider.getClass().getName(), api.getName());
251 252 if (this.registerProvider(provider))
252 253 {
253 254 this.providerToAPIMap.put(provider, api);
... ...
java/common/com/mumfrey/liteloader/core/LiteLoaderMods.java
... ... @@ -25,6 +25,7 @@ import com.mumfrey.liteloader.launch.LoaderProperties;
25 25 import com.mumfrey.liteloader.modconfig.ConfigManager;
26 26 import com.mumfrey.liteloader.modconfig.ConfigStrategy;
27 27 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  28 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
28 29  
29 30 /**
30 31 * Separated from the core loader class for encapsulation purposes
... ... @@ -478,7 +479,7 @@ public class LiteLoaderMods
478 479 */
479 480 void loadMod(Mod mod) throws InstantiationException, IllegalAccessException
480 481 {
481   - LiteLoaderLogger.info("Loading mod from %s", mod.getModClassName());
  482 + LiteLoaderLogger.info(Verbosity.REDUCED, "Loading mod from %s", mod.getModClassName());
482 483  
483 484 LiteMod newMod = mod.newInstance();
484 485  
... ... @@ -559,7 +560,7 @@ public class LiteLoaderMods
559 560 {
560 561 LiteMod instance = mod.getMod();
561 562  
562   - LiteLoaderLogger.info("Initialising mod %s version %s", instance.getName(), instance.getVersion());
  563 + LiteLoaderLogger.info(Verbosity.REDUCED, "Initialising mod %s version %s", instance.getName(), instance.getVersion());
563 564 LoadingProgress.incLiteLoaderProgress("Initialising mod %s version %s...", instance.getName(), instance.getVersion());
564 565  
565 566 this.onPreInitMod(instance);
... ...
java/common/com/mumfrey/liteloader/core/api/EnumeratorModuleClassPath.java
... ... @@ -13,6 +13,7 @@ import com.mumfrey.liteloader.interfaces.ModularEnumerator;
13 13 import com.mumfrey.liteloader.launch.LoaderEnvironment;
14 14 import com.mumfrey.liteloader.launch.LoaderProperties;
15 15 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  16 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
16 17  
17 18 /**
18 19 * Enumerator module which searches for mods on the classpath
... ... @@ -97,7 +98,7 @@ public class EnumeratorModuleClassPath implements EnumeratorModule
97 98 }
98 99 else
99 100 {
100   - LiteLoaderLogger.info("Mod %s is disabled or missing a required dependency, not injecting tranformers", classPathMod.getIdentifier());
  101 + LiteLoaderLogger.info(Verbosity.REDUCED, "Mod %s is disabled or missing a required dependency, not injecting tranformers", classPathMod.getIdentifier());
101 102 }
102 103 }
103 104 }
... ... @@ -120,7 +121,7 @@ public class EnumeratorModuleClassPath implements EnumeratorModule
120 121 @Override
121 122 public void registerMods(ModularEnumerator enumerator, LaunchClassLoader classLoader)
122 123 {
123   - LiteLoaderLogger.info("Discovering mods on class path...");
  124 + LiteLoaderLogger.info(Verbosity.REDUCED, "Discovering mods on class path...");
124 125 LoadingProgress.incTotalLiteLoaderProgress(this.loadableMods.size());
125 126  
126 127 for (LoadableMod<File> classPathMod : this.loadableMods)
... ...
java/common/com/mumfrey/liteloader/core/api/EnumeratorModuleFolder.java
... ... @@ -24,6 +24,7 @@ import com.mumfrey.liteloader.interfaces.TweakContainer;
24 24 import com.mumfrey.liteloader.launch.LoaderEnvironment;
25 25 import com.mumfrey.liteloader.launch.LoaderProperties;
26 26 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  27 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
27 28  
28 29 /**
29 30 * Enumerator module which searches for mods and tweaks in a folder
... ... @@ -296,7 +297,7 @@ public class EnumeratorModuleFolder implements FilenameFilter, EnumeratorModule
296 297 }
297 298 else
298 299 {
299   - LiteLoaderLogger.info("Not adding invalid or version-mismatched mod file: %s", modFile);
  300 + LiteLoaderLogger.info(Verbosity.REDUCED, "Not adding invalid or version-mismatched mod file: %s", modFile);
300 301 enumerator.registerBadContainer(modFile, "Version not supported");
301 302 }
302 303 }
... ... @@ -335,12 +336,12 @@ public class EnumeratorModuleFolder implements FilenameFilter, EnumeratorModule
335 336 {
336 337 if (enumerator.registerModContainer(modFile))
337 338 {
338   - LiteLoaderLogger.info("Adding newest valid mod file '%s' at revision %.4f", modFile, modFile.getRevision());
  339 + LiteLoaderLogger.info(Verbosity.REDUCED, "Adding newest valid mod file '%s' at revision %.4f", modFile, modFile.getRevision());
339 340 this.loadableMods.add(modFile);
340 341 }
341 342 else
342 343 {
343   - LiteLoaderLogger.info("Not adding valid mod file '%s', the specified mod is disabled or missing a required dependency", modFile);
  344 + LiteLoaderLogger.info(Verbosity.REDUCED, "Not adding valid mod file '%s', the specified mod is disabled or missing a required dependency", modFile);
344 345 }
345 346  
346 347 if (this.loadTweaks)
... ... @@ -383,7 +384,7 @@ public class EnumeratorModuleFolder implements FilenameFilter, EnumeratorModule
383 384 @Override
384 385 public void registerMods(ModularEnumerator enumerator, LaunchClassLoader classLoader)
385 386 {
386   - LiteLoaderLogger.info("Discovering mods in valid mod files...");
  387 + LiteLoaderLogger.info(Verbosity.REDUCED, "Discovering mods in valid mod files...");
387 388 LoadingProgress.incTotalLiteLoaderProgress(this.loadableMods.size());
388 389  
389 390 for (LoadableMod<?> modFile : this.loadableMods)
... ...
java/common/com/mumfrey/liteloader/launch/ClassTransformerManager.java
... ... @@ -12,6 +12,7 @@ import net.minecraft.launchwrapper.LaunchClassLoader;
12 12 import net.minecraft.launchwrapper.LogWrapper;
13 13  
14 14 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  15 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
15 16  
16 17 /**
17 18 * Manages injection of required and optional transformers
... ... @@ -141,7 +142,7 @@ public class ClassTransformerManager
141 142 {
142 143 for (String requiredTransformerClassName : this.requiredTransformers)
143 144 {
144   - LiteLoaderLogger.info("Injecting required class transformer '%s'", requiredTransformerClassName);
  145 + LiteLoaderLogger.info(Verbosity.REDUCED, "Injecting required class transformer '%s'", requiredTransformerClassName);
145 146 this.injectTransformer(classLoader, requiredTransformerClassName);
146 147 }
147 148 }
... ... @@ -158,7 +159,7 @@ public class ClassTransformerManager
158 159  
159 160 for (String transformerClassName : this.downstreamTransformers)
160 161 {
161   - LiteLoaderLogger.info("Injecting additional class transformer class '%s'", transformerClassName);
  162 + LiteLoaderLogger.info(Verbosity.REDUCED, "Injecting additional class transformer class '%s'", transformerClassName);
162 163 this.injectTransformer(classLoader, transformerClassName);
163 164 }
164 165  
... ...
java/common/com/mumfrey/liteloader/launch/LiteLoaderTweaker.java
... ... @@ -17,6 +17,7 @@ import net.minecraft.launchwrapper.LaunchClassLoader;
17 17 import com.mumfrey.liteloader.transformers.event.EventInfo;
18 18 import com.mumfrey.liteloader.util.SortableValue;
19 19 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  20 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
20 21  
21 22 /**
22 23 * LiteLoader tweak class
... ... @@ -283,7 +284,7 @@ public class LiteLoaderTweaker implements ITweaker
283 284 */
284 285 private void onPrepare(List<String> args, File gameDirectory, File assetsDirectory, String profile)
285 286 {
286   - LiteLoaderLogger.info("Bootstrapping LiteLoader " + LiteLoaderTweaker.VERSION);
  287 + LiteLoaderLogger.info(Verbosity.REDUCED, "Bootstrapping LiteLoader " + LiteLoaderTweaker.VERSION);
287 288  
288 289 try
289 290 {
... ... @@ -422,7 +423,7 @@ public class LiteLoaderTweaker implements ITweaker
422 423 for (SortableValue<String> tweak : this.sortedCascadingTweaks)
423 424 {
424 425 String tweakClass = tweak.getValue();
425   - LiteLoaderLogger.info("Injecting tweak class %s with priority %d", tweakClass, tweak.getPriority());
  426 + LiteLoaderLogger.info(Verbosity.REDUCED, "Injecting tweak class %s with priority %d", tweakClass, tweak.getPriority());
426 427 this.injectTweakClass(tweakClass, tweakClasses, tweakers);
427 428 }
428 429 }
... ...
java/common/com/mumfrey/liteloader/launch/LiteLoaderTweakerServer.java
... ... @@ -3,8 +3,16 @@ package com.mumfrey.liteloader.launch;
3 3 import java.io.File;
4 4 import java.util.List;
5 5  
  6 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  7 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
  8 +
6 9 public class LiteLoaderTweakerServer extends LiteLoaderTweaker
7 10 {
  11 + public LiteLoaderTweakerServer()
  12 + {
  13 + LiteLoaderLogger.verbosity = Verbosity.REDUCED;
  14 + }
  15 +
8 16 @Override
9 17 protected StartupEnvironment spawnStartupEnvironment(List<String> args, File gameDirectory, File assetsDirectory, String profile)
10 18 {
... ...
java/common/com/mumfrey/liteloader/transformers/event/EventTransformer.java
... ... @@ -27,6 +27,7 @@ import com.mumfrey.liteloader.transformers.ClassTransformer;
27 27 import com.mumfrey.liteloader.transformers.ObfProvider;
28 28 import com.mumfrey.liteloader.transformers.access.AccessorTransformer;
29 29 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  30 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
30 31  
31 32 /**
32 33 * EventTransformer is the spiritual successor to the CallbackInjectionTransformer and is a more advanced and flexible
... ... @@ -362,15 +363,9 @@ public final class EventTransformer extends ClassTransformer
362 363 private void injectEventsAt(ClassNode classNode, MethodNode method, AbstractInsnNode injectionPoint, Injection injection)
363 364 {
364 365 Event head = injection.getHead();
365   -
366   - if (head.isVerbose())
367   - {
368   - LiteLoaderLogger.info("Injecting %s[x%d] in %s in %s", head.getName(), injection.size(), method.name, ClassTransformer.getSimpleClassName(classNode));
369   - }
370   - else
371   - {
372   - LiteLoaderLogger.debug("Injecting %s[x%d] in %s in %s", head.getName(), injection.size(), method.name, ClassTransformer.getSimpleClassName(classNode));
373   - }
  366 +
  367 + Verbosity verbosity = head.isVerbose() ? Verbosity.NORMAL : Verbosity.VERBOSE;
  368 + LiteLoaderLogger.info(verbosity, "Injecting %s[x%d] in %s in %s", head.getName(), injection.size(), method.name, ClassTransformer.getSimpleClassName(classNode));
374 369  
375 370 MethodNode handler = head.inject(injectionPoint, injection.isCancellable(), this.globalEventID, injection.captureLocals(), injection.getLocalTypes());
376 371 injection.addEventsToHandler(handler);
... ...
java/common/com/mumfrey/liteloader/transformers/event/json/ModEventInjectionTransformer.java
... ... @@ -8,6 +8,7 @@ import com.mumfrey.liteloader.transformers.event.InjectionPoint;
8 8 import com.mumfrey.liteloader.transformers.event.MethodInfo;
9 9 import com.mumfrey.liteloader.transformers.event.json.ModEvents.ModEventDefinition;
10 10 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
  11 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger.Verbosity;
11 12  
12 13 /**
13 14 * Event transformer which manages injections of mod events specified via events.json in the mod container
... ... @@ -62,7 +63,7 @@ public class ModEventInjectionTransformer extends EventInjectionTransformer
62 63 def.injectIntoClassPath();
63 64 }
64 65  
65   - LiteLoaderLogger.info("Registering events for mod with id %s", def.getIdentifier());
  66 + LiteLoaderLogger.info(Verbosity.REDUCED, "Registering events for mod with id %s", def.getIdentifier());
66 67 events.register(this);
67 68 def.onEventsInjected();
68 69 }
... ...
java/common/com/mumfrey/liteloader/util/log/LiteLoaderLogger.java
... ... @@ -35,6 +35,31 @@ public class LiteLoaderLogger extends AbstractAppender
35 35  
36 36 private static Throwable lastThrowable;
37 37  
  38 + /**
  39 + * Provides some wiggle-room within log4j's Level so we can have different levels of logging on the same, um.. Level
  40 + */
  41 + public static enum Verbosity
  42 + {
  43 + VERBOSE(3),
  44 + NORMAL(2),
  45 + REDUCED(1),
  46 + SILENT(0);
  47 +
  48 + protected final int level;
  49 +
  50 + private Verbosity(int level)
  51 + {
  52 + this.level = level;
  53 + }
  54 +
  55 + public int getLevel()
  56 + {
  57 + return this.level;
  58 + }
  59 + }
  60 +
  61 + public static Verbosity verbosity = LiteLoaderLogger.DEBUG ? Verbosity.VERBOSE : Verbosity.NORMAL;
  62 +
38 63 static
39 64 {
40 65 LiteLoaderLogger.logger.addAppender(new LiteLoaderLogger());
... ... @@ -132,8 +157,13 @@ public class LiteLoaderLogger extends AbstractAppender
132 157 return lastThrowableWrapped;
133 158 }
134 159  
135   - private static void log(Level level, String format, Object... data)
  160 + private static void log(Level level, Verbosity verbosity, String format, Object... data)
136 161 {
  162 + if (verbosity.level > LiteLoaderLogger.verbosity.level)
  163 + {
  164 + return;
  165 + }
  166 +
137 167 try
138 168 {
139 169 LiteLoaderLogger.logger.log(level, String.format(format, data));
... ... @@ -144,8 +174,13 @@ public class LiteLoaderLogger extends AbstractAppender
144 174 }
145 175 }
146 176  
147   - private static void log(Level level, Throwable th, String format, Object... data)
  177 + private static void log(Level level, Verbosity verbosity, Throwable th, String format, Object... data)
148 178 {
  179 + if (verbosity.level > LiteLoaderLogger.verbosity.level)
  180 + {
  181 + return;
  182 + }
  183 +
149 184 LiteLoaderLogger.lastThrowable = th;
150 185  
151 186 try
... ... @@ -165,16 +200,26 @@ public class LiteLoaderLogger extends AbstractAppender
165 200  
166 201 public static void severe(String format, Object... data)
167 202 {
168   - LiteLoaderLogger.log(Level.ERROR, format, data);
  203 + LiteLoaderLogger.severe(Verbosity.REDUCED, format, data);
  204 + }
  205 +
  206 + public static void severe(Verbosity verbosity, String format, Object... data)
  207 + {
  208 + LiteLoaderLogger.log(Level.ERROR, verbosity, format, data);
169 209 }
170 210  
171 211 public static void severe(Throwable th, String format, Object... data)
172 212 {
  213 + LiteLoaderLogger.severe(Verbosity.REDUCED, th, format, data);
  214 + }
  215 +
  216 + public static void severe(Verbosity verbosity, Throwable th, String format, Object... data)
  217 + {
173 218 LiteLoaderLogger.lastThrowable = th;
174 219  
175 220 try
176 221 {
177   - LiteLoaderLogger.log(Level.ERROR, th, format, data);
  222 + LiteLoaderLogger.log(Level.ERROR, verbosity, th, format, data);
178 223 }
179 224 catch (LinkageError ex) // This happens because of ClassLoader scope derpiness during the PREINIT and INIT phases
180 225 {
... ... @@ -189,16 +234,26 @@ public class LiteLoaderLogger extends AbstractAppender
189 234  
190 235 public static void warning(String format, Object... data)
191 236 {
192   - LiteLoaderLogger.log(Level.WARN, format, data);
  237 + LiteLoaderLogger.warning(Verbosity.REDUCED, format, data);
  238 + }
  239 +
  240 + public static void warning(Verbosity verbosity, String format, Object... data)
  241 + {
  242 + LiteLoaderLogger.log(Level.WARN, verbosity, format, data);
193 243 }
194 244  
195 245 public static void warning(Throwable th, String format, Object... data)
196 246 {
  247 + LiteLoaderLogger.warning(Verbosity.REDUCED, th, format, data);
  248 + }
  249 +
  250 + public static void warning(Verbosity verbosity, Throwable th, String format, Object... data)
  251 + {
197 252 LiteLoaderLogger.lastThrowable = th;
198 253  
199 254 try
200 255 {
201   - LiteLoaderLogger.log(Level.WARN, th, format, data);
  256 + LiteLoaderLogger.log(Level.WARN, verbosity, th, format, data);
202 257 }
203 258 catch (LinkageError ex) // This happens because of ClassLoader scope derpiness during the PREINIT and INIT phases
204 259 {
... ... @@ -213,7 +268,12 @@ public class LiteLoaderLogger extends AbstractAppender
213 268  
214 269 public static void info(String format, Object... data)
215 270 {
216   - LiteLoaderLogger.log(Level.INFO, format, data);
  271 + LiteLoaderLogger.info(Verbosity.NORMAL, format, data);
  272 + }
  273 +
  274 + public static void info(Verbosity verbosity, String format, Object... data)
  275 + {
  276 + LiteLoaderLogger.log(Level.INFO, verbosity, format, data);
217 277 }
218 278  
219 279 public static void debug(String format, Object... data)
... ...