public void FilteringTargetWrapperAsyncTest1() { var myMockCondition = new MyMockCondition(true); var myTarget = new MyAsyncTarget(); var wrapper = new FilteringTargetWrapper(myTarget, myMockCondition); myTarget.Initialize(null); wrapper.Initialize(null); var logEvent = new LogEventInfo(); Exception lastException = null; var continuationHit = new ManualResetEvent(false); AsyncContinuation continuation = ex => { lastException = ex; continuationHit.Set(); }; wrapper.WriteAsyncLogEvent(logEvent.WithContinuation(continuation)); continuationHit.WaitOne(); Assert.Null(lastException); Assert.Equal(1, myTarget.WriteCount); Assert.Equal(1, myMockCondition.CallCount); continuationHit.Reset(); wrapper.WriteAsyncLogEvent(logEvent.WithContinuation(continuation)); continuationHit.WaitOne(); Assert.Null(lastException); Assert.Equal(2, myTarget.WriteCount); Assert.Equal(2, myMockCondition.CallCount); }
/// <summary> /// Creates filtering target wrapper. /// </summary> /// <param name="name"> /// The name. /// </param> /// <param name="wrappedTarget"> /// The wrapped target. /// </param> /// <param name="condition"> /// The condition. /// </param> /// <returns> /// The new filtering target wrapper. /// </returns> public static FilteringTargetWrapper CreateFilteringTargetWrapper( string name, Target wrappedTarget, string condition) { FilteringTargetWrapper = new FilteringTargetWrapper { Name = name, WrappedTarget = wrappedTarget, Condition = condition }; return(FilteringTargetWrapper); }
static void Main(string[] args) { FileTarget wrappedTarget = new FileTarget(); wrappedTarget.FileName = "${basedir}/file.txt"; FilteringTargetWrapper filteringTarget = new FilteringTargetWrapper(); filteringTarget.WrappedTarget = wrappedTarget; filteringTarget.Condition = "contains('${message}','1')"; NLog.Config.SimpleConfigurator.ConfigureForTargetLogging(filteringTarget, LogLevel.Debug); Logger logger = LogManager.GetLogger("Example"); logger.Debug("log message 0"); logger.Debug("log message 1"); logger.Debug("log message 2"); logger.Debug("log message 11"); }
public void FilteringTargetWrapperAsyncWithExceptionTest1() { var myMockCondition = new MyMockCondition(true); var myTarget = new MyAsyncTarget { ThrowExceptions = true, }; var wrapper = new FilteringTargetWrapper(myTarget, myMockCondition); myTarget.Initialize(null); wrapper.Initialize(null); var logEvent = new LogEventInfo(); Exception lastException = null; var continuationHit = new ManualResetEvent(false); AsyncContinuation continuation = ex => { lastException = ex; continuationHit.Set(); }; wrapper.WriteAsyncLogEvent(logEvent.WithContinuation(continuation)); continuationHit.WaitOne(); Assert.IsNotNull(lastException); Assert.IsInstanceOfType(lastException, typeof(InvalidOperationException)); Assert.AreEqual(1, myTarget.WriteCount); Assert.AreEqual(1, myMockCondition.CallCount); continuationHit.Reset(); lastException = null; wrapper.WriteAsyncLogEvent(logEvent.WithContinuation(continuation)); continuationHit.WaitOne(); Assert.IsNotNull(lastException); Assert.IsInstanceOfType(lastException, typeof(InvalidOperationException)); Assert.AreEqual(2, myTarget.WriteCount); Assert.AreEqual(2, myMockCondition.CallCount); }
public void FilteringTargetWrapperSyncTest2() { var myMockCondition = new MyMockCondition(false); var myTarget = new MyTarget(); var wrapper = new FilteringTargetWrapper { WrappedTarget = myTarget, Condition = myMockCondition, }; myTarget.Initialize(null); wrapper.Initialize(null); var logEvent = new LogEventInfo(); Exception lastException = null; bool continuationHit = false; AsyncContinuation continuation = ex => { lastException = ex; continuationHit = true; }; wrapper.WriteAsyncLogEvent(logEvent.WithContinuation(continuation)); Assert.Equal(1, myMockCondition.CallCount); Assert.True(continuationHit); Assert.Null(lastException); Assert.Equal(0, myTarget.WriteCount); Assert.Equal(1, myMockCondition.CallCount); continuationHit = false; wrapper.WriteAsyncLogEvent(logEvent.WithContinuation(continuation)); Assert.True(continuationHit); Assert.Null(lastException); Assert.Equal(0, myTarget.WriteCount); Assert.Equal(2, myMockCondition.CallCount); }