Commit 91f621aecc5766c6bf7f6456e4a15a35ed695687
1 parent
d71dab5e
add verbosity levels to logger to support reduced log output on server
Showing
14 changed files
with
125 additions
and
51 deletions
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) | ... | ... |