コード例 #1
0
        public void Log_Prefix()
        {
            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);

            CustomPrefix custom1 = new CustomPrefix();
            CustomPrefix custom2 = new CustomPrefix();

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

            ml.MetaInfo.Format._();
            Log.SetVerbosity(ml, Verbosity.Verbose);
            Log.SetVerbosity(Log.DebugLogger, Verbosity.Verbose, ALox.InternalDomains);
            Log.SetDomain("/PREFIX", Scope.Method);

            // src scopes
            Log.SetPrefix("REPLACE:", Scope.Global);  Log.Info("*msg*"); PFXCHECK("REPLACE:*msg*", ml);
            Log.SetPrefix("GLOBAL:", Scope.Global);  Log.Info("*msg*"); PFXCHECK("GLOBAL:*msg*", ml);
            Log.SetPrefix(null, Scope.Global);  Log.Info("*msg*"); PFXCHECK("*msg*", ml);
            Log.SetPrefix("REPLACE:", Scope.Filename);  Log.Info("*msg*"); PFXCHECK("REPLACE:*msg*", ml);
            Log.SetPrefix("FILE:", Scope.Filename);  Log.Info("*msg*"); PFXCHECK("FILE:*msg*", ml);
            Log.SetPrefix("REPLACE:", Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:REPLACE:*msg*", ml);
            Log.SetPrefix("METHOD:", Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:METHOD:*msg*", ml);

            Log.SetPrefix(null, Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:*msg*", ml);
            Log.SetPrefix("METHOD:", Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:METHOD:*msg*", ml);

            // set custom
            Log.SetPrefix(null, Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:*msg*", ml);
            Log.SetPrefix(custom1, Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:CUSTOM:*msg*", ml);
            Log.SetPrefix(custom1, Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:CUSTOM:*msg*", ml);
            Log.SetPrefix(custom2, Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:CUSTOM:*msg*", ml);
            Log.SetPrefix(null, Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:*msg*", ml);
            Log.SetPrefix(custom1, Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:CUSTOM:*msg*", ml);
            Log.SetPrefix("METHOD:", Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:METHOD:*msg*", ml);
            Log.SetPrefix("METHOD:", Scope.Method);  Log.Info("*msg*"); PFXCHECK("FILE:METHOD:*msg*", ml);

            // domain related
            Log.SetPrefix("DOM1:");                           Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOM1:*msg*", ml);
            Log.SetPrefix("DOM2:");                           Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOM1:DOM2:*msg*", ml);
            Log.SetPrefix("DOM3:");                           Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOM1:DOM2:DOM3:*msg*", ml);
            Log.SetPrefix("");                           Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOM1:DOM2:*msg*", ml);
            Log.SetPrefix("");                           Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOM1:*msg*", ml);
            Log.SetPrefix("DOMR:", "/");                      Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("DOMX:", "", Inclusion.Exclude);    Log.Info("*msg*"); PFXCHECK("DOMX:*msg*", ml);
            Log.SetPrefix("");                           Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("DRX:", "/", Inclusion.Exclude);    Log.Info("*msg*"); PFXCHECK("DRX:DOM1:*msg*", ml);
            Log.SetPrefix("", "/");                      Log.Info("*msg*"); PFXCHECK("FILE:METHOD:DOMR:DOM1:*msg*", ml);

            // source path
            Log.SetPrefix("REPLACE:", Scope.Path);  Log.Info("*msg*"); PFXCHECK("REPLACE:FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("PATH:", Scope.Path);  Log.Info("*msg*"); PFXCHECK("PATH:FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("REPLACE:", Scope.Path, 1);  Log.Info("*msg*"); PFXCHECK("REPLACE:PATH:FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("PO1:", Scope.Path, 1);  Log.Info("*msg*"); PFXCHECK("PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("REPLACE:", Scope.Path, 2);  Log.Info("*msg*"); PFXCHECK("REPLACE:PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("PO2:", Scope.Path, 2);  Log.Info("*msg*"); PFXCHECK("PO2:PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*", ml);
            Log.SetPrefix("REPLACE:", Scope.Global);  Log.Info("*msg*"); PFXCHECK("REPLACE:PO2:PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*", ml);

            // remove all previous scope domains
            Log.SetPrefix(null, Scope.Global);
            Log.SetPrefix(null, Scope.Path);
            Log.SetPrefix(null, Scope.Path, 1);
            Log.SetPrefix(null, Scope.Path, 2);
            Log.SetPrefix(null, Scope.Filename);
            Log.SetPrefix(null, Scope.Method);

            Log.SetPrefix(null);      // domain "/PREFIX"
            Log.SetPrefix(null);      // domain "/PREFIX" nothing here any more
            Log.SetPrefix(null, "/"); // domain "/"
            Log.Info("*msg*"); PFXCHECK("*msg*", ml);

            // Thread-related
            Log.SetPrefix("TO:", Scope.ThreadOuter);  Log.Info("*msg*"); PFXCHECK("TO:*msg*", ml);
            Log.SetPrefix("GL:", Scope.Global);  Log.Info("*msg*"); PFXCHECK("GL:TO:*msg*", ml);
            Log.SetPrefix("MET:", Scope.Method);  Log.Info("*msg*"); PFXCHECK("GL:TO:MET:*msg*", ml);
            Log.SetPrefix(":TI", Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("GL:TO:MET:*msg*:TI", ml);

            Log.SetPrefix("TO2:", Scope.ThreadOuter);  Log.Info("*msg*"); PFXCHECK("GL:TO:TO2:MET:*msg*:TI", ml);
            Log.SetPrefix(":TI2", Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("GL:TO:TO2:MET:*msg*:TI:TI2", ml);

            Log.SetPrefix("TO3:", Scope.ThreadOuter);  Log.Info("*msg*"); PFXCHECK("GL:TO:TO2:TO3:MET:*msg*:TI:TI2", ml);
            Log.SetPrefix(":TI3", Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("GL:TO:TO2:TO3:MET:*msg*:TI:TI2:TI3", ml);


            Log.SetPrefix(null, Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("GL:TO:TO2:TO3:MET:*msg*:TI:TI2", ml);
            Log.SetPrefix(null, Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("GL:TO:TO2:TO3:MET:*msg*:TI", ml);
            Log.SetPrefix(null, Scope.ThreadOuter);  Log.Info("*msg*"); PFXCHECK("GL:TO:TO2:MET:*msg*:TI", ml);
            Log.SetPrefix(null, Scope.ThreadOuter);  Log.Info("*msg*"); PFXCHECK("GL:TO:MET:*msg*:TI", ml);
            Log.SetPrefix(null, Scope.ThreadOuter);  Log.Info("*msg*"); PFXCHECK("GL:MET:*msg*:TI", ml);
            Log.SetPrefix(null, Scope.Global);  Log.Info("*msg*"); PFXCHECK("MET:*msg*:TI", ml);
            Log.SetPrefix(null, Scope.Method);  Log.Info("*msg*"); PFXCHECK("*msg*:TI", ml);
            Log.SetPrefix(null, Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("*msg*", ml);

            // check if breaking dom-releated, removes all thread inner correctly
            Log.SetPrefix(":TI", Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("*msg*:TI", ml);
            Log.SetPrefix("DOM1:", "", Inclusion.Include);  Log.Info("*msg*"); PFXCHECK("DOM1:*msg*:TI", ml);
            Log.SetPrefix("DOMX:", "", Inclusion.Exclude);  Log.Info("*msg*"); PFXCHECK("DOMX:*msg*", ml);
            Log.SetPrefix(":TI", Scope.ThreadInner);  Log.Info("*msg*"); PFXCHECK("DOMX:*msg*", ml);
            Log.SetPrefix(null, "");  Log.Info("*msg*"); PFXCHECK("DOM1:*msg*:TI:TI", ml);

            Log.RemoveLogger(ml);
        }
コード例 #2
0
    public void Log_Prefix()
    {
        UT_INIT();

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

        CustomPrefix custom1= new CustomPrefix();
        CustomPrefix custom2= new CustomPrefix();

        Log.AddDebugLogger();
        MemoryLogger ml= new MemoryLogger();
        ml.MetaInfo.Format._();
        Log.SetVerbosity(ml, Verbosity.Verbose );
        Log.SetVerbosity(Log.DebugLogger, Verbosity.Verbose, ALox.InternalDomains );
        Log.SetDomain( "/PREFIX", Scope.Method );

        // src scopes
        Log.SetPrefix( "REPLACE:",    Scope.Global      );  Log.Info( "*msg*" ); PFXCHECK( "REPLACE:*msg*"          ,ml );
        Log.SetPrefix( "GLOBAL:",     Scope.Global      );  Log.Info( "*msg*" ); PFXCHECK( "GLOBAL:*msg*"           ,ml );
        Log.SetPrefix( null   ,       Scope.Global      );  Log.Info( "*msg*" ); PFXCHECK( "*msg*"                  ,ml );
        Log.SetPrefix( "REPLACE:",    Scope.Filename    );  Log.Info( "*msg*" ); PFXCHECK( "REPLACE:*msg*"          ,ml );
        Log.SetPrefix( "FILE:",       Scope.Filename    );  Log.Info( "*msg*" ); PFXCHECK( "FILE:*msg*"             ,ml );
        Log.SetPrefix( "REPLACE:",    Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:REPLACE:*msg*"     ,ml );
        Log.SetPrefix( "METHOD:",     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:*msg*"      ,ml );

        Log.SetPrefix( null   ,       Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:*msg*"             ,ml );
        Log.SetPrefix( "METHOD:",     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:*msg*"      ,ml );

        // set custom
        Log.SetPrefix( null   ,       Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:*msg*"             ,ml );
        Log.SetPrefix( custom1  ,     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:CUSTOM:*msg*"      ,ml );
        Log.SetPrefix( custom1  ,     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:CUSTOM:*msg*"      ,ml );
        Log.SetPrefix( custom2  ,     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:CUSTOM:*msg*"      ,ml );
        Log.SetPrefix( null   ,       Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:*msg*"             ,ml );
        Log.SetPrefix( custom1  ,     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:CUSTOM:*msg*"      ,ml );
        Log.SetPrefix( "METHOD:",     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:*msg*"      ,ml );
        Log.SetPrefix( "METHOD:",     Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:*msg*"      ,ml );

        // domain related
        Log.SetPrefix( "DOM1:" );                           Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOM1:*msg*"            ,ml );
        Log.SetPrefix( "DOM2:" );                           Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOM1:DOM2:*msg*"       ,ml );
        Log.SetPrefix( "DOM3:" );                           Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOM1:DOM2:DOM3:*msg*"  ,ml );
        Log.SetPrefix( ""      );                           Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOM1:DOM2:*msg*"       ,ml );
        Log.SetPrefix( ""      );                           Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOM1:*msg*"            ,ml );
        Log.SetPrefix( "DOMR:", "/" );                      Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOMR:DOM1:*msg*"       ,ml );
        Log.SetPrefix( "DOMX:", "", Inclusion.Exclude );    Log.Info( "*msg*" ); PFXCHECK( "DOMX:*msg*"                        ,ml );
        Log.SetPrefix( ""      );                           Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOMR:DOM1:*msg*"       ,ml );
        Log.SetPrefix( "DRX:", "/", Inclusion.Exclude );    Log.Info( "*msg*" ); PFXCHECK( "DRX:DOM1:*msg*"                    ,ml );
        Log.SetPrefix( ""    , "/"  );                      Log.Info( "*msg*" ); PFXCHECK( "FILE:METHOD:DOMR:DOM1:*msg*"       ,ml );

        // source path
        Log.SetPrefix( "REPLACE:",    Scope.Path        );  Log.Info( "*msg*" ); PFXCHECK( "REPLACE:FILE:METHOD:DOMR:DOM1:*msg*"         ,ml );
        Log.SetPrefix( "PATH:",       Scope.Path        );  Log.Info( "*msg*" ); PFXCHECK( "PATH:FILE:METHOD:DOMR:DOM1:*msg*"            ,ml );
        Log.SetPrefix( "REPLACE:",    Scope.Path, 1     );  Log.Info( "*msg*" ); PFXCHECK( "REPLACE:PATH:FILE:METHOD:DOMR:DOM1:*msg*"    ,ml );
        Log.SetPrefix( "PO1:",        Scope.Path, 1     );  Log.Info( "*msg*" ); PFXCHECK( "PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*"        ,ml );
        Log.SetPrefix( "REPLACE:",    Scope.Path, 2     );  Log.Info( "*msg*" ); PFXCHECK( "REPLACE:PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*",ml );
        Log.SetPrefix( "PO2:",        Scope.Path, 2     );  Log.Info( "*msg*" ); PFXCHECK( "PO2:PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*"    ,ml );
        Log.SetPrefix( "REPLACE:",    Scope.Global      );  Log.Info( "*msg*" ); PFXCHECK( "REPLACE:PO2:PO1:PATH:FILE:METHOD:DOMR:DOM1:*msg*"  , ml );

        // remove all previous scope domains
        Log.SetPrefix( null          ,Scope.Global      );
        Log.SetPrefix( null          ,Scope.Path        );
        Log.SetPrefix( null          ,Scope.Path    ,1  );
        Log.SetPrefix( null          ,Scope.Path    ,2  );
        Log.SetPrefix( null          ,Scope.Filename    );
        Log.SetPrefix( null          ,Scope.Method      );

        Log.SetPrefix( null      ); // domain "/PREFIX"
        Log.SetPrefix( null      ); // domain "/PREFIX" nothing here any more
        Log.SetPrefix( null, "/" ); // domain "/"
                                                            Log.Info( "*msg*" ); PFXCHECK( "*msg*"                        ,ml );

        // Thread-related
        Log.SetPrefix( "TO:"         ,Scope.ThreadOuter );  Log.Info( "*msg*" ); PFXCHECK( "TO:*msg*"                     ,ml );
        Log.SetPrefix( "GL:"         ,Scope.Global      );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:*msg*"                  ,ml );
        Log.SetPrefix( "MET:"        ,Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:MET:*msg*"              ,ml );
        Log.SetPrefix( ":TI"         ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:MET:*msg*:TI"           ,ml );

        Log.SetPrefix( "TO2:"        ,Scope.ThreadOuter );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:TO2:MET:*msg*:TI"       ,ml );
        Log.SetPrefix( ":TI2"        ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:TO2:MET:*msg*:TI:TI2"   ,ml );

        Log.SetPrefix( "TO3:"        ,Scope.ThreadOuter );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:TO2:TO3:MET:*msg*:TI:TI2"    ,ml );
        Log.SetPrefix( ":TI3"        ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:TO2:TO3:MET:*msg*:TI:TI2:TI3",ml );


        Log.SetPrefix( null          ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:TO2:TO3:MET:*msg*:TI:TI2"    ,ml );
        Log.SetPrefix( null          ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:TO2:TO3:MET:*msg*:TI"   ,ml );
        Log.SetPrefix( null          ,Scope.ThreadOuter );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:TO2:MET:*msg*:TI"       ,ml );
        Log.SetPrefix( null          ,Scope.ThreadOuter );  Log.Info( "*msg*" ); PFXCHECK( "GL:TO:MET:*msg*:TI"           ,ml );
        Log.SetPrefix( null          ,Scope.ThreadOuter );  Log.Info( "*msg*" ); PFXCHECK( "GL:MET:*msg*:TI"              ,ml );
        Log.SetPrefix( null          ,Scope.Global      );  Log.Info( "*msg*" ); PFXCHECK( "MET:*msg*:TI"                 ,ml );
        Log.SetPrefix( null          ,Scope.Method      );  Log.Info( "*msg*" ); PFXCHECK( "*msg*:TI"                     ,ml );
        Log.SetPrefix( null          ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "*msg*"                        ,ml );

        // check if breaking dom-releated, removes all thread inner correctly
        Log.SetPrefix( ":TI"         ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "*msg*:TI"                  ,ml );
        Log.SetPrefix( "DOM1:", ""   ,Inclusion.Include );  Log.Info( "*msg*" ); PFXCHECK( "DOM1:*msg*:TI"             ,ml );
        Log.SetPrefix( "DOMX:", ""   ,Inclusion.Exclude );  Log.Info( "*msg*" ); PFXCHECK( "DOMX:*msg*"                ,ml );
        Log.SetPrefix( ":TI"         ,Scope.ThreadInner );  Log.Info( "*msg*" ); PFXCHECK( "DOMX:*msg*"                ,ml );
        Log.SetPrefix( null, ""                         );  Log.Info( "*msg*" ); PFXCHECK( "DOM1:*msg*:TI:TI"          ,ml );

        Log.RemoveLogger( ml );
    }