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(); }