@@ -52,14 +52,28 @@ public static class NHibernateLogger
52
52
private static INHibernateLoggerFactory _loggerFactory ;
53
53
54
54
#pragma warning disable 618
55
- internal static ILoggerFactory LegacyLoggerFactory { get ; private set ; }
55
+ private static ILoggerFactory _legacyLoggerFactory ;
56
+ internal static ILoggerFactory LegacyLoggerFactory => LogWrapper . LegacyLoggerFactory ;
56
57
#pragma warning restore 618
57
58
58
- static NHibernateLogger ( )
59
+ private static class LogWrapper
59
60
{
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
63
77
}
64
78
65
79
/// <summary>
@@ -74,17 +88,17 @@ public static void SetLoggersFactory(INHibernateLoggerFactory loggerFactory)
74
88
// Also keep global state for obsolete logger
75
89
if ( loggerFactory == null )
76
90
{
77
- LegacyLoggerFactory = new NoLoggingLoggerFactory ( ) ;
91
+ _legacyLoggerFactory = new NoLoggingLoggerFactory ( ) ;
78
92
}
79
93
else
80
94
{
81
95
if ( loggerFactory is LoggerProvider . LegacyLoggerFactoryAdaptor legacyAdaptor )
82
96
{
83
- LegacyLoggerFactory = legacyAdaptor . Factory ;
97
+ _legacyLoggerFactory = legacyAdaptor . Factory ;
84
98
}
85
99
else
86
100
{
87
- LegacyLoggerFactory = new LoggerProvider . ReverseLegacyLoggerFactoryAdaptor ( loggerFactory ) ;
101
+ _legacyLoggerFactory = new LoggerProvider . ReverseLegacyLoggerFactoryAdaptor ( loggerFactory ) ;
88
102
}
89
103
}
90
104
#pragma warning restore 618
@@ -97,7 +111,7 @@ public static void SetLoggersFactory(INHibernateLoggerFactory loggerFactory)
97
111
/// <returns>A NHibernate logger.</returns>
98
112
public static INHibernateLogger For ( string keyName )
99
113
{
100
- return _loggerFactory . LoggerFor ( keyName ) ;
114
+ return LogWrapper . LoggerFactory . LoggerFor ( keyName ) ;
101
115
}
102
116
103
117
/// <summary>
@@ -107,7 +121,7 @@ public static INHibernateLogger For(string keyName)
107
121
/// <returns>A NHibernate logger.</returns>
108
122
public static INHibernateLogger For ( System . Type type )
109
123
{
110
- return _loggerFactory . LoggerFor ( type ) ;
124
+ return LogWrapper . LoggerFactory . LoggerFor ( type ) ;
111
125
}
112
126
113
127
private static string GetNhibernateLoggerClass ( )
0 commit comments