Skip to content

Commit 78ce59e

Browse files
bahusoidhazzik
authored andcommitted
Skip NHibernateLogger default initialization logic when logger provided by user
1 parent 9575f61 commit 78ce59e

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

src/NHibernate/Logging.cs

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,28 @@ public static class NHibernateLogger
5252
private static INHibernateLoggerFactory _loggerFactory;
5353

5454
#pragma warning disable 618
55-
internal static ILoggerFactory LegacyLoggerFactory { get; private set; }
55+
private static ILoggerFactory _legacyLoggerFactory;
56+
internal static ILoggerFactory LegacyLoggerFactory => LogWrapper.LegacyLoggerFactory;
5657
#pragma warning restore 618
5758

58-
static NHibernateLogger()
59+
private static class LogWrapper
5960
{
60-
var nhibernateLoggerClass = GetNhibernateLoggerClass();
61-
var loggerFactory = string.IsNullOrEmpty(nhibernateLoggerClass) ? null : GetLoggerFactory(nhibernateLoggerClass);
62-
SetLoggersFactory(loggerFactory);
61+
static LogWrapper()
62+
{
63+
var userLoggerFactory = _loggerFactory;
64+
if (userLoggerFactory == null)
65+
{
66+
var nhibernateLoggerClass = GetNhibernateLoggerClass();
67+
var loggerFactory = string.IsNullOrEmpty(nhibernateLoggerClass) ? null : GetLoggerFactory(nhibernateLoggerClass);
68+
SetLoggersFactory(loggerFactory);
69+
}
70+
}
71+
72+
public static INHibernateLoggerFactory LoggerFactory => _loggerFactory;
73+
74+
#pragma warning disable 618
75+
internal static ILoggerFactory LegacyLoggerFactory => _legacyLoggerFactory;
76+
#pragma warning restore 618
6377
}
6478

6579
/// <summary>
@@ -74,17 +88,17 @@ public static void SetLoggersFactory(INHibernateLoggerFactory loggerFactory)
7488
// Also keep global state for obsolete logger
7589
if (loggerFactory == null)
7690
{
77-
LegacyLoggerFactory = new NoLoggingLoggerFactory();
91+
_legacyLoggerFactory = new NoLoggingLoggerFactory();
7892
}
7993
else
8094
{
8195
if (loggerFactory is LoggerProvider.LegacyLoggerFactoryAdaptor legacyAdaptor)
8296
{
83-
LegacyLoggerFactory = legacyAdaptor.Factory;
97+
_legacyLoggerFactory = legacyAdaptor.Factory;
8498
}
8599
else
86100
{
87-
LegacyLoggerFactory = new LoggerProvider.ReverseLegacyLoggerFactoryAdaptor(loggerFactory);
101+
_legacyLoggerFactory = new LoggerProvider.ReverseLegacyLoggerFactoryAdaptor(loggerFactory);
88102
}
89103
}
90104
#pragma warning restore 618
@@ -97,7 +111,7 @@ public static void SetLoggersFactory(INHibernateLoggerFactory loggerFactory)
97111
/// <returns>A NHibernate logger.</returns>
98112
public static INHibernateLogger For(string keyName)
99113
{
100-
return _loggerFactory.LoggerFor(keyName);
114+
return LogWrapper.LoggerFactory.LoggerFor(keyName);
101115
}
102116

103117
/// <summary>
@@ -107,7 +121,7 @@ public static INHibernateLogger For(string keyName)
107121
/// <returns>A NHibernate logger.</returns>
108122
public static INHibernateLogger For(System.Type type)
109123
{
110-
return _loggerFactory.LoggerFor(type);
124+
return LogWrapper.LoggerFactory.LoggerFor(type);
111125
}
112126

113127
private static string GetNhibernateLoggerClass()

0 commit comments

Comments
 (0)