@@ -11,6 +11,7 @@ namespace NLog.Extensions.Logging
1111 /// </summary>
1212 public static class ConfigureExtensions
1313 {
14+
1415 /// <summary>
1516 /// Enable NLog as logging provider in .NET Core.
1617 /// </summary>
@@ -28,6 +29,47 @@ public static ILoggerFactory AddNLog(this ILoggerFactory factory)
2829 /// <param name="options">NLog options</param>
2930 /// <returns>ILoggerFactory for chaining</returns>
3031 public static ILoggerFactory AddNLog ( this ILoggerFactory factory , NLogProviderOptions options )
32+ {
33+ ConfigureHiddenAssemblies ( ) ;
34+
35+ using ( var provider = new NLogLoggerProvider ( options ) )
36+ {
37+ factory . AddProvider ( provider ) ;
38+ }
39+ return factory ;
40+ }
41+
42+ #if NETSTANDARD2_0
43+
44+ /// <summary>
45+ /// Enable NLog as logging provider in .NET Core.
46+ /// </summary>
47+ /// <param name="factory"></param>
48+ /// <returns>ILoggerFactory for chaining</returns>
49+ public static ILoggingBuilder AddNLog ( this ILoggingBuilder factory )
50+ {
51+ return AddNLog ( factory , null ) ;
52+ }
53+
54+ /// <summary>
55+ /// Enable NLog as logging provider in .NET Core.
56+ /// </summary>
57+ /// <param name="factory"></param>
58+ /// <param name="options">NLog options</param>
59+ /// <returns>ILoggerFactory for chaining</returns>
60+ public static ILoggingBuilder AddNLog ( this ILoggingBuilder factory , NLogProviderOptions options )
61+ {
62+ ConfigureHiddenAssemblies ( ) ;
63+
64+ using ( var provider = new NLogLoggerProvider ( options ) )
65+ {
66+ factory . AddProvider ( provider ) ;
67+ }
68+ return factory ;
69+ }
70+ #endif
71+
72+ private static void ConfigureHiddenAssemblies ( )
3173 {
3274 //ignore this
3375 LogManager . AddHiddenAssembly ( Assembly . Load ( new AssemblyName ( "Microsoft.Extensions.Logging" ) ) ) ;
@@ -43,24 +85,19 @@ public static ILoggerFactory AddNLog(this ILoggerFactory factory, NLogProviderOp
4385 {
4486 //ignore
4587 }
46-
47- LogManager . AddHiddenAssembly ( typeof ( ConfigureExtensions ) . GetTypeInfo ( ) . Assembly ) ;
4888
49- using ( var provider = new NLogLoggerProvider ( options ) )
50- {
51- factory . AddProvider ( provider ) ;
52- }
53- return factory ;
89+ LogManager . AddHiddenAssembly ( typeof ( ConfigureExtensions ) . GetTypeInfo ( ) . Assembly ) ;
5490 }
5591
5692 /// <summary>
5793 /// Apply NLog configuration from XML config.
5894 /// </summary>
59- /// <param name="env "></param>
95+ /// <param name="loggerFactory "></param>
6096 /// <param name="configFileRelativePath">relative path to NLog configuration file.</param>
61- /// <returns>Current configuration for chaining.</returns>
62- public static LoggingConfiguration ConfigureNLog ( this ILoggerFactory env , string configFileRelativePath )
97+ /// <returns>Current configuration for chaining.</returns>
98+ public static LoggingConfiguration ConfigureNLog ( this ILoggerFactory loggerFactory , string configFileRelativePath )
6399 {
100+
64101#if NETCORE
65102 var rootPath = System . AppContext . BaseDirectory ;
66103#else
@@ -71,24 +108,24 @@ public static LoggingConfiguration ConfigureNLog(this ILoggerFactory env, string
71108 return ConfigureNLog ( fileName ) ;
72109 }
73110
74- /// <summary>
75- /// Apply NLog configuration from config object.
76- /// </summary>
77- /// <param name="env "></param>
78- /// <param name="config">New NLog config.</param>
79- /// <returns>Current configuration for chaining.</returns>
80- public static LoggingConfiguration ConfigureNLog ( this ILoggerFactory env , LoggingConfiguration config )
81- {
82- LogManager . Configuration = config ;
111+ /// <summary>
112+ /// Apply NLog configuration from config object.
113+ /// </summary>
114+ /// <param name="loggerFactory "></param>
115+ /// <param name="config">New NLog config.</param>
116+ /// <returns>Current configuration for chaining.</returns>
117+ public static LoggingConfiguration ConfigureNLog ( this ILoggerFactory loggerFactory , LoggingConfiguration config )
118+ {
119+ LogManager . Configuration = config ;
83120
84- return config ;
85- }
121+ return config ;
122+ }
86123
87124 /// <summary>
88125 /// Apply NLog configuration from XML config.
89126 /// </summary>
90127 /// <param name="fileName">absolute path NLog configuration file.</param>
91- /// <returns>Current configuration for chaining.</returns>
128+ /// <returns>Current configuration for chaining.</returns>
92129 private static LoggingConfiguration ConfigureNLog ( string fileName )
93130 {
94131 var config = new XmlLoggingConfiguration ( fileName , true ) ;
0 commit comments