public void AsyncTaskTarget_TestTimeout() { RetryingIntegrationTest(3, () => { ILogger logger = LogManager.GetCurrentClassLogger(); var asyncTarget = new AsyncTaskTestTarget { Layout = "${level}", TaskTimeoutSeconds = 1 }; SimpleConfigurator.ConfigureForTargetLogging(asyncTarget, LogLevel.Trace); logger.Trace("TTT"); logger.Debug("TIMEOUT"); logger.Info("III"); logger.Warn("WWW"); logger.Error("EEE"); logger.Fatal("FFF"); Assert.True(asyncTarget.WaitForWriteEvent()); Assert.NotEmpty(asyncTarget.Logs); LogManager.Flush(); Assert.Equal(5, asyncTarget.Logs.Count); while (asyncTarget.Logs.TryDequeue(out var logEventMessage)) { Assert.Equal(-1, logEventMessage.IndexOf("Debug|")); } LogManager.Configuration = null; });
public void AsyncTaskTarget_TestLogging() { ILogger logger = LogManager.GetCurrentClassLogger(); var asyncTarget = new AsyncTaskTestTarget { Layout = "${threadid}|${level}|${message}|${mdlc:item=Test}" }; SimpleConfigurator.ConfigureForTargetLogging(asyncTarget, LogLevel.Trace); NLog.Common.InternalLogger.LogLevel = LogLevel.Off; int managedThreadId = 0; Task task; using (MappedDiagnosticsLogicalContext.SetScoped("Test", 42)) { task = Task.Run(() => { managedThreadId = Thread.CurrentThread.ManagedThreadId; logger.Trace("TTT"); logger.Debug("DDD"); logger.Info("III"); logger.Warn("WWW"); logger.Error("EEE"); logger.Fatal("FFF"); }); } Assert.True(asyncTarget.WaitForWriteEvent()); Assert.NotEmpty(asyncTarget.Logs); task.Wait(); LogManager.Flush(); Assert.Equal(6, asyncTarget.Logs.Count); while (asyncTarget.Logs.TryDequeue(out var logEventMessage)) { Assert.Equal(0, logEventMessage.IndexOf(managedThreadId.ToString() + "|")); Assert.EndsWith("|42", logEventMessage); } LogManager.Configuration = null; }
public void AsyncTaskTarget_TestAsyncException() { ILogger logger = LogManager.GetCurrentClassLogger(); var asyncTarget = new AsyncTaskTestTarget { Layout = "${level}", RetryDelayMilliseconds = 50 }; SimpleConfigurator.ConfigureForTargetLogging(asyncTarget, LogLevel.Trace); foreach (var logLevel in LogLevel.AllLoggingLevels) { logger.Log(logLevel, logLevel == LogLevel.Debug ? "ASYNCEXCEPTION" : logLevel.Name.ToUpperInvariant()); } Assert.True(asyncTarget.WaitForWriteEvent()); Assert.NotEmpty(asyncTarget.Logs); LogManager.Flush(); Assert.Equal(LogLevel.MaxLevel.Ordinal, asyncTarget.Logs.Count); int ordinal = 0; while (asyncTarget.Logs.TryDequeue(out var logEventMessage)) { var logLevel = LogLevel.FromString(logEventMessage); Assert.NotEqual(LogLevel.Debug, logLevel); Assert.Equal(ordinal++, logLevel.Ordinal); if (ordinal == LogLevel.Debug.Ordinal) { ++ordinal; } } LogManager.Configuration = null; }