Пример #1
0
        static void Main(string[] args)
        {
            LogHandlerBase debugHandler = new DebugHandler();
            LogHandlerBase infoHandler  = new InfoHandler();
            LogHandlerBase errorHandler = new ErrorHandler();
            LogHandlerBase fatalHandler = new FatalHandler();


            LogHandlerBase chainRoot = debugHandler;

            debugHandler.SetNext(infoHandler);
            infoHandler.SetNext(errorHandler);
            errorHandler.SetNext(fatalHandler);

            Console.WriteLine("Some error log", 2);
            chainRoot.Handle("Some error log", 2);
            Console.WriteLine("==================");
            Console.WriteLine("Some fatal log", 1);
            chainRoot.Handle("Some fatal log", 1);
            Console.WriteLine("==================");
            Console.WriteLine("Some debug log", 4);
            chainRoot.Handle("Some debug log", 4);
            Console.WriteLine("==================");
            Console.WriteLine("Some info log", 3);
            chainRoot.Handle("Some info log", 3);
            Console.WriteLine("==================");

            LogHandlerBase chainRoot2 = fatalHandler;

            fatalHandler.SetNext(errorHandler);
            errorHandler.SetNext(infoHandler);
            infoHandler.SetNext(debugHandler);

            Console.WriteLine("Some error log", 2);
            chainRoot2.Handle("Some error log", 2);
            Console.WriteLine("==================");
            Console.WriteLine("Some fatal log", 1);
            chainRoot2.Handle("Some fatal log", 1);
            Console.WriteLine("==================");
            Console.WriteLine("Some debug log", 4);
            chainRoot2.Handle("Some debug log", 4);
            Console.WriteLine("==================");
            Console.WriteLine("Some info log", 3);
            chainRoot2.Handle("Some info log", 3);
            Console.WriteLine("==================");
        }
Пример #2
0
 public void SetNext(LogHandlerBase next)
 {
     this.next = next;
 }