protected override void Initialize(SonarAnalysisContext context) { // ASP.NET Core InvocationTracker.Track(context, InvocationTracker.MatchMethod( new MemberDescriptor(KnownType.Microsoft_AspNetCore_Hosting_WebHostBuilderExtensions, "ConfigureLogging"), new MemberDescriptor(KnownType.Microsoft_Extensions_DependencyInjection_LoggingServiceCollectionExtensions, "AddLogging"), new MemberDescriptor(KnownType.Microsoft_Extensions_Logging_ConsoleLoggerExtensions, "AddConsole"), new MemberDescriptor(KnownType.Microsoft_Extensions_Logging_DebugLoggerFactoryExtensions, "AddDebug"), new MemberDescriptor(KnownType.Microsoft_Extensions_Logging_EventLoggerFactoryExtensions, "AddEventLog"), new MemberDescriptor(KnownType.Microsoft_Extensions_Logging_EventLoggerFactoryExtensions, "AddEventSourceLogger"), new MemberDescriptor(KnownType.Microsoft_Extensions_Logging_EventSourceLoggerFactoryExtensions, "AddEventSourceLogger"), new MemberDescriptor(KnownType.Microsoft_Extensions_Logging_AzureAppServicesLoggerFactoryExtensions, "AddAzureWebAppDiagnostics")), InvocationTracker.MethodIsExtension()); ObjectCreationTracker.Track(context, ObjectCreationTracker.WhenImplements(KnownType.Microsoft_Extensions_Logging_ILoggerFactory)); // log4net InvocationTracker.Track(context, InvocationTracker.MatchMethod( new MemberDescriptor(KnownType.log4net_Config_XmlConfigurator, "Configure"), new MemberDescriptor(KnownType.log4net_Config_XmlConfigurator, "ConfigureAndWatch"), new MemberDescriptor(KnownType.log4net_Config_DOMConfigurator, "Configure"), new MemberDescriptor(KnownType.log4net_Config_DOMConfigurator, "ConfigureAndWatch"), new MemberDescriptor(KnownType.log4net_Config_BasicConfigurator, "Configure"))); // NLog PropertyAccessTracker.Track(context, PropertyAccessTracker.MatchSetter(), PropertyAccessTracker.MatchProperty( new MemberDescriptor(KnownType.NLog_LogManager, "Configuration"))); // Serilog ObjectCreationTracker.Track(context, ObjectCreationTracker.WhenDerivesFrom(KnownType.Serilog_LoggerConfiguration)); }