Beispiel #1
0
        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));
        }