# Microsoft.Extensions.Logging

``` diff
 namespace Microsoft.Extensions.Logging {
+    public class LogDefineOptions {
+        public LogDefineOptions();
+        public bool SkipEnabledCheck { get; set; }
+    }
     public static class LoggerMessage {
+        public static Action<ILogger, Exception> Define(LogLevel logLevel, EventId eventId, string formatString, LogDefineOptions options);
-        public static Action<ILogger, Exception> Define(LogLevel logLevel, EventId eventId, string formatString, bool skipEnabledCheck);

+        public static Action<ILogger, T1, T2, T3, T4, T5, T6, Exception> Define<T1, T2, T3, T4, T5, T6>(LogLevel logLevel, EventId eventId, string formatString, LogDefineOptions options);
-        public static Action<ILogger, T1, T2, T3, T4, T5, T6, Exception> Define<T1, T2, T3, T4, T5, T6>(LogLevel logLevel, EventId eventId, string formatString, bool skipEnabledCheck);

+        public static Action<ILogger, T1, T2, T3, T4, T5, Exception> Define<T1, T2, T3, T4, T5>(LogLevel logLevel, EventId eventId, string formatString, LogDefineOptions options);
-        public static Action<ILogger, T1, T2, T3, T4, T5, Exception> Define<T1, T2, T3, T4, T5>(LogLevel logLevel, EventId eventId, string formatString, bool skipEnabledCheck);

+        public static Action<ILogger, T1, T2, T3, T4, Exception> Define<T1, T2, T3, T4>(LogLevel logLevel, EventId eventId, string formatString, LogDefineOptions options);
-        public static Action<ILogger, T1, T2, T3, T4, Exception> Define<T1, T2, T3, T4>(LogLevel logLevel, EventId eventId, string formatString, bool skipEnabledCheck);

+        public static Action<ILogger, T1, T2, T3, Exception> Define<T1, T2, T3>(LogLevel logLevel, EventId eventId, string formatString, LogDefineOptions options);
-        public static Action<ILogger, T1, T2, T3, Exception> Define<T1, T2, T3>(LogLevel logLevel, EventId eventId, string formatString, bool skipEnabledCheck);

+        public static Action<ILogger, T1, T2, Exception> Define<T1, T2>(LogLevel logLevel, EventId eventId, string formatString, LogDefineOptions options);
-        public static Action<ILogger, T1, T2, Exception> Define<T1, T2>(LogLevel logLevel, EventId eventId, string formatString, bool skipEnabledCheck);

+        public static Action<ILogger, T1, Exception> Define<T1>(LogLevel logLevel, EventId eventId, string formatString, LogDefineOptions options);
-        public static Action<ILogger, T1, Exception> Define<T1>(LogLevel logLevel, EventId eventId, string formatString, bool skipEnabledCheck);

     }
     public sealed class LoggerMessageAttribute : Attribute {
+        public LoggerMessageAttribute(int eventId, LogLevel level, string message);
+        public bool SkipEnabledCheck { get; set; }
     }
 }
```

