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(); } }
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)); } }
/// <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(); } }
protected override ILoggerFactory CreateLoggerFactory() { _factory = new LoggerFactory(); _factory.AddEventSourceLogger(); return(_factory); }