private static void RunAzureSignalRCore(IAppBuilder builder, string applicationName, HubConfiguration configuration, ServiceOptions options)
        {
            // applicationName is case insensitive, it will be lower cased in the service side
            if (string.IsNullOrEmpty(applicationName))
            {
                throw new ArgumentException(nameof(applicationName), "Empty application name is not allowed.");
            }

            options.ApplicationName = applicationName;

            if (configuration == null)
            {
                // Keep the same as SignalR's exception
                throw new ArgumentException("A configuration object must be specified.");
            }

            var resolver = configuration.Resolver ?? throw new ArgumentException("A dependency resolver must be specified.");

            var loggerFactory = resolver.Resolve <ILoggerFactory>();

            if (loggerFactory == null)
            {
                loggerFactory = new LoggerFactory();
                // Add default
                loggerFactory.AddEventSourceLogger();
            }

            var dispatcher = DispatcherHelper.PrepareAndGetDispatcher(builder, configuration, options, applicationName, loggerFactory);

            if (dispatcher != null)
            {
                // Start the server->service connection asynchronously
                _ = dispatcher.StartAsync();
            }
        }
Beispiel #2
0
        private static void Main(string[] args)
        {
            var logging = new LoggerFactory();

            logging.AddEventSourceLogger();

            var logger = logging.CreateLogger <Program>();

            DumpEventPipeInfo();

            Console.WriteLine($"Process ID: {Process.GetCurrentProcess().Id}");
            Console.WriteLine($"AppName: {Assembly.GetEntryAssembly().GetName().Name}");
            Console.WriteLine($"AppDomain Base: {AppDomain.CurrentDomain.BaseDirectory}");
            Console.WriteLine($"AppBase: {AppContext.BaseDirectory}");
            Console.WriteLine("Ready to start emitting events.");
            Console.WriteLine("Press X to quit.");
            Console.WriteLine("Press A to allocate 100 MB.");
            Console.WriteLine("Press G to force a GC.");
            Console.WriteLine("Press T to spawn parallel tasks.");
            Console.WriteLine("Press L to log a Microsoft.Extensions.Logging message to 'SampleMonitoredApp.Program'.");
            Console.WriteLine("Press E to write a random value to an EventSource/EventCounter.");

            while (true)
            {
                var key = Console.ReadKey(intercept: true);

                switch (key.Key)
                {
                case ConsoleKey.X:
                    return;

                case ConsoleKey.A:
                    AllocateMemory();
                    break;

                case ConsoleKey.G:
                    GC.Collect();
                    Console.WriteLine($"Total Memory after collection: {FormatSize(GC.GetTotalMemory(forceFullCollection: false))}");
                    break;

                case ConsoleKey.T:
                    SpawnTasks();
                    break;

                case ConsoleKey.L:
                    logger.Log(LogLevel.Information, new EventId(42, "SampleEvent"), "This is a sample event with an argument: {rando}", _rando.Next(0, 100));
                    break;

                case ConsoleKey.E:
                    SampleEventSource.Log.MyEvent(_rando.Next(0, 100));
                    break;
                }
            }
        }
        public static void IsEnabledReturnsCorrectValue()
        {
            using (var testListener = new TestEventListener())
            {
                var factory = new LoggerFactory();
                factory.AddEventSourceLogger();

                var listenerSettings = new TestEventListener.ListenerSettings();
                listenerSettings.Keywords   = LoggingEventSource.Keywords.JsonMessage;
                listenerSettings.FilterSpec = null;
                listenerSettings.Level      = EventLevel.Warning;
                testListener.EnableEvents(listenerSettings);

                var logger = factory.CreateLogger("Logger1");

                Assert.False(logger.IsEnabled(LogLevel.None));
                Assert.True(logger.IsEnabled(LogLevel.Critical));
                Assert.True(logger.IsEnabled(LogLevel.Error));
                Assert.True(logger.IsEnabled(LogLevel.Warning));
                Assert.False(logger.IsEnabled(LogLevel.Information));
                Assert.False(logger.IsEnabled(LogLevel.Debug));
                Assert.False(logger.IsEnabled(LogLevel.Trace));
            }
        }
Beispiel #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Log"/> class.
        /// </summary>
        /// <param name="logDest">logging destination</param>
        /// <param name="categoryName">category name for log messages</param>
        /// <param name="listener">optional trace listener for the TraceSource logging destination</param>
        public Log(LogDestination logDest, string categoryName, TraceListener listener = null)
        {
            var loggerFactory = new LoggerFactory();

            this.logger = loggerFactory.CreateLogger(categoryName);

            if (logDest == LogDestination.Debug)
            {
                // the following produces debug output visible in the visual studio output window
                loggerFactory.AddDebug();
            }
            else if (logDest == LogDestination.Console)
            {
                // the following produces output visible in a console window
                loggerFactory.AddConsole();
            }
            else if (logDest == LogDestination.TraceSource)
            {
                if (listener == null)
                {
                    throw new ArgumentNullException("listener is null");
                }

                var source = new SourceSwitch("sourceSwitch");
                source.Level = SourceLevels.All;
                loggerFactory.AddTraceSource(source, listener);
            }
            else if (logDest == LogDestination.EventSource)
            {
                // create an event listener
                var eventListener = new LogEventListener();

                // the following produces event source debug output
                loggerFactory.AddEventSourceLogger();
            }
        }
Beispiel #5
0
 protected override ILoggerFactory CreateLoggerFactory()
 {
     _factory = new LoggerFactory();
     _factory.AddEventSourceLogger();
     return(_factory);
 }