Advertisement
aslen

Untitled

Dec 22nd, 2015
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.76 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7.  
  8. namespace LoggingTest
  9. {
  10.     public interface ILog
  11.     {
  12.         void Log(string message);
  13.     }
  14.  
  15.     public class ConsoleLogger : ILog
  16.     {
  17.         public void Log(string message)
  18.         {
  19.             Console.WriteLine(message);
  20.         }
  21.     }
  22.     public class SaverToFileLogger : ILog
  23.     {
  24.  
  25.         public void Log(string message)
  26.         {
  27.             using (StreamWriter sw = new StreamWriter("D:\\loggerFile.txt",true))
  28.             {
  29.                 sw.WriteLine(message);
  30.                 sw.Close();
  31.             }
  32.         }
  33.     }
  34.  
  35.     public class SomeComplexClass
  36.     {
  37.         private ILog logger;
  38.  
  39.         public SomeComplexClass(ILog logger)
  40.         {
  41.             this.logger = logger;
  42.         }
  43.  
  44.         public void SomeComplexFunction()
  45.         {
  46.             // представляем что в этой функции много кода и время от времени мы хотим логировать то, что сейчас происходит.
  47.             logger.Log("Начало метода - время : " + DateTime.Now.TimeOfDay.ToString());
  48.  
  49.             logger.Log("вычислили значение");
  50.  
  51.             logger.Log("Конец метода - время : " + DateTime.Now.TimeOfDay.ToString());
  52.         }
  53.     }
  54.     class Program
  55.     {
  56.         static void Main(string[] args)
  57.         {
  58.             //SomeComplexClass myObj = new SomeComplexClass(new ConsoleLogger());
  59.             //myObj.SomeComplexFunction();
  60.  
  61.             SomeComplexClass myObj2 = new SomeComplexClass(new SaverToFileLogger());
  62.             myObj2.SomeComplexFunction();
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement