static void Main(string[] args)
        {
            var simpleLayout = new SimpleLayout();

            var consoleAppender = new ConsoleAppender(simpleLayout);
            consoleAppender.Threshold = ReportLevel.Error;

            var fileAppender = new FileAppender(simpleLayout);
            fileAppender.File = "log.txt";

            var logger = new Logger.Loggers.Logger(consoleAppender, fileAppender);
            logger.Info("Everything seems fine");
            logger.Warn("Warning: ping is too high - disconnect imminent");
            logger.Error("Error parsing request");
            logger.Critical("No connection string found in App.config");
            logger.Fatal("mscorlib.dll does not respond");
        }
示例#2
0
        static void Main(string[] args)
        {
            var simpleLayout = new SimpleLayout();

            var consoleAppender = new ConsoleAppender(simpleLayout);

            consoleAppender.Threshold = ReportLevel.Error;

            var fileAppender = new FileAppender(simpleLayout);

            fileAppender.File = "log.txt";

            var logger = new Logger.Loggers.Logger(consoleAppender, fileAppender);

            logger.Info("Everything seems fine");
            logger.Warn("Warning: ping is too high - disconnect imminent");
            logger.Error("Error parsing request");
            logger.Critical("No connection string found in App.config");
            logger.Fatal("mscorlib.dll does not respond");
        }
示例#3
0
        public void Act(int countOfAppenders)
        {
            IAppender[] appenders = new IAppender[countOfAppenders];

            for (int i = 0; i < countOfAppenders; i++)
            {
                var input = Console.ReadLine().Split();

                ILayout layout = null;

                switch (input[1])
                {
                case nameof(SimpleLayout):
                    layout = new SimpleLayout();
                    break;

                case nameof(XmlLayout):
                    layout = new XmlLayout();
                    break;

                default:
                    throw new ArgumentException();
                }

                IAppender appender = null;

                switch (input[0])
                {
                case nameof(ConsoleAppender):
                    appender = new ConsoleAppender(layout);
                    break;

                case nameof(FileAppender):
                    appender = new FileAppender(layout);
                    ((FileAppender)appender).File = new LogFile();
                    break;
                }

                if (input.Length == 3)
                {
                    ReportLevel level = (ReportLevel)Enum.Parse(typeof(ReportLevel), input[2]);
                    appender.ReportLevel = level;
                }

                appenders[i] = appender;
            }

            var logger = new Logger.Loggers.Logger(appenders);


            string command;

            while ((command = Console.ReadLine()) != "END")
            {
                var input = command.Split('|');

                string time    = input[1];
                string message = input[2];

                ReportLevel level = (ReportLevel)Enum.Parse(typeof(ReportLevel), input[0]);

                switch (level)
                {
                case ReportLevel.CRITICAL:
                    logger.Critical(time, message);
                    break;

                case ReportLevel.ERROR:
                    logger.Error(time, message);
                    break;

                case ReportLevel.FATAL:
                    logger.Fatal(time, message);
                    break;

                case ReportLevel.INFO:
                    logger.Info(time, message);
                    break;

                case ReportLevel.WARNING:
                    logger.Warn(time, message);
                    break;
                }
            }

            Console.WriteLine(logger);
        }