Beispiel #1
0
        public void Log_ScopeInfoCacheTest()
        {
            UT_INIT();

            Log.AddDebugLogger();

            MemoryLogger memLogger = new MemoryLogger();

            if (Path.DirectorySeparatorChar == '/')
            {
                memLogger.MetaInfo.Format._()._("%Sp/%SF@");
            }
            else
            {
                memLogger.MetaInfo.Format._()._("%Sp\\%SF@");
            }

            Log.SetVerbosity(memLogger, Verbosity.Verbose);


            CS_ALox_Lox.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_lox.cs", memLogger, false);
            CS_ALox_Documentation_Samples.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_dox_reference_manual.cs", memLogger, false);
            CS_ALox_domains.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_domains.cs", memLogger, false);

            CS_ALox_Documentation_Samples.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_dox_reference_manual.cs", memLogger, false);
            CS_ALox_domains.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_domains.cs", memLogger, false);

            CS_ALox_Logger.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_logger.cs", memLogger, false);

            CS_ALox_domains.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_domains.cs", memLogger, false);
            CS_ALox_Logger.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_logger.cs", memLogger, false);

            CS_ALox_Tools.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_logtools.cs", memLogger, false);
            CS_ALox_Tools.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_logtools.cs", memLogger, false);
            CS_ALox_release.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_release_log.cs", memLogger, false);
            CS_ALox_Tools.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_logtools.cs", memLogger, false);
            CS_ALox_domains.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_domains.cs", memLogger, false);
            CS_ALox_Lox.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_lox.cs", memLogger, false);
            CS_ALox_scopes.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_scopes.cs", memLogger, false);
            CS_ALox_domains_helper.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_scopes_helper.cs", memLogger, false);
            CS_Tutorial.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_dox_tutorial.cs", memLogger, false);
            CS_ALox_Logger.ScopeInfoCacheTest(); check_MemLogStartsWith("alox.unittests/UT_alox_logger.cs", memLogger, false);

            Log.RemoveDebugLogger();
            Log.RemoveLogger(memLogger);
        }
        public void Log_ScopeDomains()
        {
            UT_INIT();

            // we have tell alox to include more directories in the scope path
            Log.ClearSourcePathTrimRules(Inclusion.Include, false);
            Log.SetSourcePathTrimRule("*/alox/src.cs/", Inclusion.Exclude);

            Log.AddDebugLogger();
            MemoryLogger ml = new MemoryLogger();

            ml.MetaInfo.Format._()._("@%D#");
            Log.SetVerbosity(ml, Verbosity.Verbose);
            Log.SetVerbosity(Log.DebugLogger, Verbosity.Verbose, ALox.InternalDomains);
            Log.SetDomain("REPLACE", Scope.Global);  Log.Info(""); SDCHECK("@/REPLACE#", ml);
            Log.SetDomain("GLOBAL", Scope.Global);  Log.Info(""); SDCHECK("@/GLOBAL#", ml);

            Log.SetDomain(null, Scope.Global);  Log.Info(""); SDCHECK("@/#", ml);

            // scope source
            Log.SetDomain("REPLACE", Scope.Filename);  Log.Info(""); SDCHECK("@/REPLACE#", ml);
            Log.SetDomain("FILE", Scope.Filename);  Log.Info(""); SDCHECK("@/FILE#", ml);

            // scope method
            Log.SetDomain("REPLACE", Scope.Method);  Log.Info(""); SDCHECK("@/FILE/REPLACE#", ml);
            Log.SetDomain("METHOD", Scope.Method);  Log.Info(""); SDCHECK("@/FILE/METHOD#", ml);
            Log.SetDomain("/ABS", Scope.Method);  Log.Info(""); SDCHECK("@/ABS#", ml);

            // unset method with null
            Log.SetDomain(null, Scope.Method);  Log.Info(""); SDCHECK("@/FILE#", ml);

            // unset method with ""
            Log.SetDomain("/METHOD", Scope.Method);  Log.Info(""); SDCHECK("@/METHOD#", ml);
            Log.SetDomain("", Scope.Method);  Log.Info(""); SDCHECK("@/FILE#", ml);
            Log.SetDomain("METHOD", Scope.Method);  Log.Info(""); SDCHECK("@/FILE/METHOD#", ml);

            // source path
            Log.SetDomain("REPLACE", Scope.Path);  Log.Info(""); SDCHECK("@/REPLACE/FILE/METHOD#", ml);
            Log.SetDomain("PATH", Scope.Path);  Log.Info(""); SDCHECK("@/PATH/FILE/METHOD#", ml);
            Log.SetDomain("REPLACE", Scope.Path, 1);  Log.Info(""); SDCHECK("@/REPLACE/PATH/FILE/METHOD#", ml);
            Log.SetDomain("PO1", Scope.Path, 1);  Log.Info(""); SDCHECK("@/PO1/PATH/FILE/METHOD#", ml);
            Log.SetDomain("REPLACE", Scope.Path, 2);  Log.Info(""); SDCHECK("@/REPLACE/PO1/PATH/FILE/METHOD#", ml);
            Log.SetDomain("PO2", Scope.Path, 2);  Log.Info(""); SDCHECK("@/PO2/PO1/PATH/FILE/METHOD#", ml);
            Log.SetDomain("PO50", Scope.Path, 50);  Log.Info(""); SDCHECK("@/PO50/PO2/PO1/PATH/FILE/METHOD#", ml);

            Log.SetDomain("GLOBAL", Scope.Global);  Log.Info("");          SDCHECK("@/GLOBAL/PO50/PO2/PO1/PATH/FILE/METHOD#", ml);
            CS_ALox_domains_helper.help(); SDCHECK("@/GLOBAL/PO50/PO2/PO1/PATH/HFILE/HMETHOD#", ml);
            Log.Info("");        SDCHECK("@/GLOBAL/PO50/PO2/PO1/PATH/FILE/METHOD#", ml);

            //Log.LogConfig( "", Verbosity.Info, "Configuration now is:" ); ml.MemoryLog._(); ml.AutoSizes.Reset();

            // remove all previous scope domains
            Log.SetDomain("", Scope.Global);
            Log.SetDomain("", Scope.Path);
            Log.SetDomain("", Scope.Path, 1);
            Log.SetDomain("", Scope.Path, 2);
            Log.SetDomain("", Scope.Path, 45);      // same as 50 above! (test)
            Log.SetDomain("", Scope.Filename);
            Log.SetDomain("", Scope.Method);  Log.Info("LOC", ""); SDCHECK("@/LOC#", ml);

            // Thread-related
            Log.SetDomain("T_O", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/T_O#", ml);
            Log.SetDomain("GL", Scope.Global);  Log.Info("", ""); SDCHECK("@/GL/T_O#", ml);
            Log.SetDomain("MET", Scope.Method);  Log.Info("", ""); SDCHECK("@/GL/T_O/MET#", ml);
            Log.SetDomain("MET", Scope.Method);  Log.Info("LOC", ""); SDCHECK("@/GL/T_O/MET/LOC#", ml);
            Log.SetDomain("T_I", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/GL/T_O/MET/T_I#", ml);

            Log.Info("LOC", ""); SDCHECK("@/GL/T_O/MET/LOC/T_I#", ml);
            Log.SetDomain("T_O2", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/GL/T_O/T_O2/MET/T_I#", ml);
            Log.SetDomain("T_I2", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/GL/T_O/T_O2/MET/T_I/T_I2#", ml);

            Log.SetDomain("/T_O3", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/T_O3/MET/T_I/T_I2#", ml);
            Log.SetDomain("/T_I3", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/T_I3#", ml);

            Log.SetDomain("", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/T_O3/MET/T_I/T_I2#", ml);
            Log.RemoveThreadDomain("T_IXX", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/T_O3/MET/T_I/T_I2#", ml);
            Log.RemoveThreadDomain("T_I", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/T_O3/MET/T_I2#", ml);
            Log.RemoveThreadDomain("", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/T_O3/MET/T_I2#", ml);
            Log.SetDomain("", Scope.ThreadInner);  Log.Info("", ""); SDCHECK("@/T_O3/MET#", ml);
            Log.SetDomain("", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/GL/T_O/T_O2/MET#", ml);
            Log.SetDomain("T_O3", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/GL/T_O/T_O2/T_O3/MET#", ml);
            Log.RemoveThreadDomain("T_O2", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/GL/T_O/T_O3/MET#", ml);
            Log.RemoveThreadDomain("T_O", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/GL/T_O3/MET#", ml);
            Log.SetDomain("", Scope.ThreadOuter);  Log.Info("", ""); SDCHECK("@/GL/MET#", ml);
            Log.SetDomain("", Scope.Global);  Log.Info("", ""); SDCHECK("@/MET#", ml);
            Log.SetDomain("", Scope.Method);  Log.Info("", ""); SDCHECK("@/#", ml);

            // second thread
            Thread thread = new Thread(new ThreadStart(DomainTestThreadRun));

            Log.SetDomain("THIS_THREAD", Scope.ThreadOuter);
            Log.SetDomain("OTHER_THREAD", Scope.ThreadOuter, thread);
            thread.Start();
            while (thread.IsAlive)
            {
                ALIB.SleepMillis(1);
            }
            UT_EQ("@/OTHER_THREAD/DTT#", ml.MemoryLog);  ml.MemoryLog._(); ml.AutoSizes.Reset();
            Log.Info("ME", "");  UT_EQ("@/THIS_THREAD/ME#", ml.MemoryLog);  ml.MemoryLog._(); ml.AutoSizes.Reset();
        }