Ejemplo n.º 1
0
        public void InstantiateLogger()
        {
            // Die Referenz auf NLogLogger.LoggingFactory wird später via DependencyInjection
            // an die anderen Klassen weitergegeben --> für Test direkt instantiiert.
            ILogging.ILoggingFactory factory = new NLogLogger.LoggingFactory();
            Assert.NotNull(factory);
            Assert.IsInstanceOf(typeof(NLogLogger.LoggingFactory), factory);

            // Logger nur noch über ILogging.ILog - Interface verwenden
            ILogging.ILog logger = factory.GetCurrentClassLogger();
            Assert.NotNull(logger);
            Assert.IsInstanceOf(typeof(NLogLogger.Logger), logger);

            // Typisierten Logger holen, um tiefergreifende Tests zu ermöglichen; für normale
            // Logging-Benutzer nicht zu verwenden
            NLogLogger.Logger typedLogger = logger as NLogLogger.Logger;
            Assert.NotNull(typedLogger);
            Assert.AreEqual(1, typedLogger.GetAllTargets().Count);
            Assert.AreEqual(1, typedLogger.GetTargets <NLog.Targets.MemoryTarget>().Count);
            NLog.Targets.MemoryTarget memTarget = typedLogger.GetTargets <NLog.Targets.MemoryTarget>()[0];
            Assert.AreEqual(this.GetType().Name, typedLogger.Name);

            logger.Trace("First message to log.");
            Assert.AreEqual(1, memTarget.Logs.Count);
            logger.Error("Second message to log.");
            Assert.AreEqual(2, memTarget.Logs.Count);
            memTarget.Logs.Clear();
            Assert.AreEqual(0, memTarget.Logs.Count);

            // Logger mit dem selben Namen aber über anderen Weg muss auf das
            // selbe Logging-Objekt zeigen
            ILogging.ILog sameLogger = factory.GetLogger(this.GetType().Name);
            Assert.AreSame(logger, sameLogger);
        }
Ejemplo n.º 2
0
 public BelegRepo(ILogging.ILoggingFactory logFactory)
 {
     Logger        = logFactory.GetCurrentClassLogger();
     myRepoFactory = RepositoryFactory.theRepoFactory as RepositoryFactory;
 }