File tree Expand file tree Collapse file tree
src/main/java/org/mangorage/bootstrap Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,8 +20,12 @@ public String getName() {
2020
2121 @ Override
2222 public IMangoLogger getLogger (String name ) {
23- if (!loggerCache .containsKey (name )) {
24- loggerCache .put (name , createLogger (name ));
23+ synchronized (this .name ) {
24+ if (!loggerCache .containsKey (name )) {
25+ final var logger = createLogger (name );
26+ loggerCache .put (name , createLogger (name ));
27+ return logger ;
28+ }
2529 }
2630 return loggerCache .get (name );
2731 }
Original file line number Diff line number Diff line change @@ -24,15 +24,11 @@ static ILoggerFactory getDefault() {
2424 * Gets the wrapped logger provider by its name. This is used to get the underlying logger provider
2525 * Sometimes providers come in later then originally requested, so this method can be used to use the provider after it has been loaded.
2626 */
27- default IDeferredMangoLogger getWrappedProvider (String providerName , Class <?> clazz ) {
28- return new DeferredMangoLogger (providerName , provider -> provider .getLogger (clazz ));
29- }
27+ IDeferredMangoLogger getWrappedProvider (String providerName , Class <?> clazz );
3028
3129 /**
3230 * Gets the wrapped logger provider by its name. This is used to get the underlying logger provider
3331 * Sometimes providers come in later then originally requested, so this method can be used to use the provider after it has been loaded.
3432 */
35- default IDeferredMangoLogger getWrappedProvider (String providerName , String name ) {
36- return new DeferredMangoLogger (providerName , provider -> provider .getLogger (name ));
37- }
33+ IDeferredMangoLogger getWrappedProvider (String providerName , String name );
3834}
Original file line number Diff line number Diff line change 11package org .mangorage .bootstrap .internal .logger ;
22
3+ import org .mangorage .bootstrap .api .logging .IDeferredMangoLogger ;
34import org .mangorage .bootstrap .api .logging .ILoggerFactory ;
45import org .mangorage .bootstrap .api .logging .ILoggerProvider ;
56import java .util .Map ;
@@ -26,11 +27,23 @@ public static void load(ModuleLayer moduleLayer) {
2627
2728 @ Override
2829 public ILoggerProvider getProvider (String providerName ) {
29- return providers .getOrDefault (providerName , DefaultLoggerProvider .INSTANCE );
30+ synchronized (INSTANCE ) {
31+ return providers .getOrDefault (providerName , DefaultLoggerProvider .INSTANCE );
32+ }
3033 }
3134
3235 @ Override
3336 public boolean hasProvider (String providerName ) {
3437 return providers .containsKey (providerName );
3538 }
39+
40+ @ Override
41+ public IDeferredMangoLogger getWrappedProvider (String providerName , Class <?> clazz ) {
42+ return new DeferredMangoLogger (providerName , provider -> provider .getLogger (clazz ));
43+ }
44+
45+ @ Override
46+ public IDeferredMangoLogger getWrappedProvider (String providerName , String name ) {
47+ return new DeferredMangoLogger (providerName , provider -> provider .getLogger (name ));
48+ }
3649}
You can’t perform that action at this time.
0 commit comments