示例#1
0
 public override void Append(string message, ReportLevel reportLevel, DateTime date)
 {
     string output = this.Layout.Format(message, reportLevel, date);
     StreamWriter writer = new StreamWriter(this.Path, true);
     writer.WriteLine(output);
     writer.Close();
 }
示例#2
0
 private void Log(ReportLevel level, string msg, params object[] args)
 {
     foreach (var appender in Appenders)
     {
         appender.AppendThresholdCheck(level, msg, args);
     }
 }
示例#3
0
 private void AppendToAll(string msg, ReportLevel reportLevel)
 {
     foreach (var appender in this.appenders)
     {
         appender.Append(msg, reportLevel, DateTime.Now);
     }
 }
示例#4
0
 public override void Append(DateTime date, ReportLevel level, string messege)
 {
     if (this.ReportLevel <= level)
     {
         Console.WriteLine(this.Layout.Format(date, level, messege));
     }
 }
示例#5
0
 private void LogMessage(ReportLevel level, string message)
 {
     foreach (var appender in this.Appenders)
     {
         appender.Append(message, level, DateTime.Now);
     }
 }
示例#6
0
        public string Format(string msg, ReportLevel reportLevel)
        {
            DateTime time = DateTime.Now;
            string output = $"{time} - {reportLevel} - {msg}";

            return output;
        }
 public void OutputMessage(string message, ReportLevel reportLevel)
 {
     if (reportLevel >= this.ReportThreshold)
     {
         Console.WriteLine(this.layoutFormat.LayoutFormat(message, reportLevel));
     }
 }
 private void Log(ReportLevel reportLevel, string message, string logType)
 {
     foreach (var appender in this.Appenders.Where(appender => reportLevel >= appender.ReportLevel))
     {
         appender.Append(message, logType);
     }
 }
示例#9
0
 public void Append(DateTime date, ReportLevel reportLevel, string message)
 {
     if (this.ReportLevel <= reportLevel)
     {
         this.AppendExecuter(date, reportLevel, message);
     }
 }
示例#10
0
 public override void Append(ReportLevel level, string msg, params object[] args)
 {
     using (var sr = new StreamWriter(file, true))
     {
         sr.WriteLine(this.Layout.Convert(level, msg, args));
     }
 }
示例#11
0
        public override void Append(string message, ReportLevel level, DateTime date)
        {
            var result = this.Layout.FormatLog(message, level, date);

            this.writer.WriteLine(result);
            this.writer.Flush();
        }
        public override void Append(string msg, ReportLevel level, DateTime date)
        {
            var output = this.Formatter.Format(msg, level, date);

            this.writer.WriteLine(output);
            this.writer.Flush();
        }
        public override string FormatLogString(ReportLevel reportLevel, string logMessage)
        {
            string logString = string.Format("{0} - {1} - {2}",
                DateTime.Now, this.ReportLevelAsString(reportLevel), logMessage);

            return logString;
        }
        public string FormatLog(DateTime date, ReportLevel reportLevel, string message)
        {
            string formattedLog = string.Format(
                LogSimpleFormat + Environment.NewLine, date, reportLevel, message);

            return formattedLog;
        }
 protected string ReportLevelAsString(ReportLevel reportLevel)
 {
     switch (reportLevel)
     {
         case ReportLevel.Info:
             {
                 return "Info";
             }
         case ReportLevel.Warn:
             {
                 return "Warning";
             }
         case ReportLevel.Error:
             {
                 return "Error";
             }
         case ReportLevel.Critical:
             {
                 return "Critical";
             }
         case ReportLevel.Fatal:
             {
                 return "Fatal";
             }
         default:
             {
                 throw new ArgumentOutOfRangeException("Unrecognised Report Level");
             }
     }
 }
示例#16
0
 private void LogHandler(string msg, ReportLevel reportLevel)
 {
     foreach (var appender in this.Appenders)
     {
         appender.Append(DateTime.Now, reportLevel, msg);
     }
 }
示例#17
0
 private void LogMessage(ReportLevel reportLevel, string message)
 {
     foreach (var appender in this.Appenders)
     {
         appender.Append(DateTime.Now, reportLevel, message);
     }
 }
 protected override int ConvertReportLevelToInt(ReportLevel reportLevel)
 {
     switch (reportLevel)
     {
         case ReportLevel.Info:
             {
                 return 0;
             }
         case ReportLevel.Warning:
             {
                 return 1;
             }
         case ReportLevel.Error:
             {
                 return 2;
             }
         case ReportLevel.Critical:
             {
                 return 3;
             }
         case ReportLevel.Fatal:
             {
                 return 4;
             }
         default:
             {
                 throw new ArgumentOutOfRangeException("Cannot Convert Report Level To Int - Unrecognized Report Level");
             }
     }
 }
示例#19
0
        public string ConvertToFormat(DateTime dateTime, ReportLevel reportLevel, string message)
        {
            string layout = string.Format("<log>{0}{1}<date>{2}</date>{0}{1}<level>{3}</level>{0}{1}<message>{4}</message>{0}</log>",
                Environment.NewLine, new string(' ', 3), dateTime, reportLevel, message);

            return layout;
        }
        public void Log(string message, ReportLevel reportLevel)
        {
            DateTime date = DateTime.Now;

            this.FileAppender.Append(date, reportLevel, message);
            this.ConsoleAppender.Append(date, reportLevel, message);
        }
示例#21
0
        public override string Format(DateTime date, ReportLevel reportLevel, string message)
        {
            base.ValidateDate(date);

            string result = string.Format("<{0}> - <{1}> - <{2}>", date, reportLevel, message);
            return result;
        }
示例#22
0
 public override void Append(DateTime date, ReportLevel report, string message)
 {
     if ((int)report >= (int)ReportLevel)
     {
         string output = Layout.Format(date, report, message);
         Console.WriteLine(output);
     }
 }
示例#23
0
 public override void Append(DateTime dateTime, ReportLevel reportLevel, string message)
 {
     if (reportLevel >= this.ReportLevel)
     {
         string format = this.Layout.ConvertToFormat(dateTime, reportLevel, message);
         Console.WriteLine(format);
     }
 }
 public override void Append(string message, ReportLevel reportLevel, DateTime dateTime)
 {
     if (this.Threshold <= reportLevel)
     {
         var formattedMessage = this.Layout.Format(message, reportLevel, dateTime);
         Console.WriteLine(formattedMessage);
     }
 }
示例#25
0
        public void Append(string message,ReportLevel level,DateTime date)
        {
            StreamWriter writer = new StreamWriter(this.Path,true);

            string output = this.Formatter.Format(message, level, date);
            writer.WriteLine(output);
            writer.Close();
        }
示例#26
0
 public override void Append(string msg, ReportLevel report, DateTime date)
 {
     if (this.Treshold <= report)
     {
         var formatedMessege = Layuot.Formated(msg, report, date);
         this.WriteMessageToFile(formatedMessege);
     }
 }
示例#27
0
 private void Log(string message,ReportLevel reportLevel)
 {
     var date = DateTime.Now;
     foreach (var appender in this.Appenders)
     {
         appender.Append(message,reportLevel,date);
     }
 }
示例#28
0
 private void Log(string message, ReportLevel level)
 {
     DateTime date = DateTime.Now;
     foreach (var appender in this.appenders)
     {
         appender.Append(date, level, message);
     }
 }
示例#29
0
 private void Log(ReportLevel reportLevel, string message)
 {
     foreach (var appender in this.appenders)
     {
         var date = DateTime.Now;
         appender.Append(date, reportLevel, message);
     }
 }
示例#30
0
 public void AppendThresholdCheck(ReportLevel level, string msg, params object[] args)
 {
     if (this.ReportThreshold > level)
     {
         return;
     }
     this.Append(level, msg, args);
 }
示例#31
0
 private void AppendMessage(string date, ReportLevel reportLevel, string message)
 {
     this.appender.Append(date, reportLevel, message);
 }
示例#32
0
 private void AppendMessage(string dateTime, ReportLevel reportLevel, string message)
 {
     this.fileAppender?.Append(dateTime, reportLevel, message);
     this.consoleAppender?.Append(dateTime, reportLevel, message);
 }
示例#33
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(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);
        }
示例#34
0
 public void AppendMessage(DateTime dateTime, ReportLevel level, string text)
 {
     AppendMessage(dateTime.ToString(), level, text);
 }
示例#35
0
 protected string GetFormattedLogEntry(DateTime date, ReportLevel reportLevel, string message)
 {
     return(this.Layout.FormatLog(date, reportLevel, message));
 }
示例#36
0
 public ConsoleAppender(Layout layout, ReportLevel reportThreshold) : base(layout, reportThreshold)
 {
 }
示例#37
0
 public ConsoleAppender(ILayout layout, ReportLevel reportLevel = ReportLevel.Info)
 {
     this.Layout                  = layout;
     this.ReportLevel             = reportLevel;
     this.CountOfMessagesAppended = 0;
 }
 public abstract void ProcessMessage(string dateTime, ReportLevel messageReportLevel, string message);
 public Appender(Layout layout, ReportLevel reportThreshold)
 {
     this.Layout          = layout;
     this.reportThreshold = reportThreshold;
 }
 public Appender(Layout layout)
 {
     this.Layout          = layout;
     this.reportThreshold = ReportLevel.INFO;
 }
示例#41
0
 protected bool CanAppend(ReportLevel reportLevel)
 {
     return(reportLevel >= this.ReportLevel);
 }
 private void AppendMessage(string dateTime, ReportLevel reportLevel, string errorMessage)
 {
     consoleAppender?.Append(dateTime, reportLevel, errorMessage);
     fileAppender?.Append(dateTime, reportLevel, errorMessage);
 }
示例#43
0
 public FileAppender(ILayout layout, ReportLevel reportLevelThreshold) : this(layout)
 {
     this.ReportLevelThreshold = reportLevelThreshold;
 }
示例#44
0
 public abstract void Append(string msg, ReportLevel level, DateTime date);
示例#45
0
 public override void Append(string dateTime, ReportLevel reportLevel, string message)
 {
 }
示例#46
0
 public string Formatting(ReportLevel reportLevel, string date, string msg)
 {
     return($"{date} - {reportLevel.ToString().ToUpper()} - {msg}");
 }
示例#47
0
 protected abstract void Append(string dateTime, ReportLevel level, string text);
示例#48
0
 public Error(DateTime dateTime, ReportLevel reportLevel, string message)
 {
     this.DateTime    = dateTime;
     this.ReportLevel = reportLevel;
     this.Message     = message;
 }
示例#49
0
 public abstract void Append(string dateTime, ReportLevel reportLevel, string message);
示例#50
0
 public ConsoleAppender(ILayout layout, ReportLevel reportLevel)
 {
     this.Layout           = layout;
     this.ReportLevel      = reportLevel;
     this.MessagesAppended = 0;
 }
 public abstract void Append(string message, ReportLevel reportLevel);
示例#52
0
 private void Append(string dateTime, ReportLevel type, string message)
 {
     appender?.Append(dateTime, type, message);
     fileAppender?.Append(dateTime, type, message);
 }
 private void AppendMessage(string dateTime, string message, ReportLevel reportLevel)
 {
     this.ConsoleAppender?.Append(dateTime, message, reportLevel);
     this.FileAppender?.Append(dateTime, message, reportLevel);
 }
示例#54
0
        protected override void Append(string dateTime, ReportLevel level, string text)
        {
            string output = string.Format(layout.Template, dateTime, level, text);

            logFile.Write(output);
        }
示例#55
0
 public static void SetReportLevel(ReportLevel level)
 {
     _reportLevel = level;
 }
示例#56
0
        public void Log(string msg, ReportLevel level)
        {
            var date = DateTime.Now;

            this.Appender.Append(msg, level, date);
        }
示例#57
0
        public string FormatLog(DateTime dateTime, ReportLevel reportingLevel, string massage)
        {
            string formatedLog = string.Format("{0} - {1} - {2}", dateTime, reportingLevel, massage + Environment.NewLine);

            return(formatedLog);
        }
示例#58
0
        public override void Append(string message, ReportLevel level, DateTime date)
        {
            string output = this.Formatter.Format(message, level, date);

            this.writer.WriteLine(output);
        }
示例#59
0
 public string Format(string msg, ReportLevel level, DateTime date)
 {
     return($"{msg} <<{date}>> ??{level}??");
 }
示例#60
0
        public void Run()
        {
            var numberOfAppenders = int.Parse(Console.ReadLine());
            var appenders         = new IAppender[numberOfAppenders];

            for (int i = 0; i < numberOfAppenders; i++)
            {
                var appenderInfo = Console.ReadLine();
                var tokens       = appenderInfo.Split();
                var layout       = this.factoryLayout.Create(tokens[1]);
                var appender     = this.factoryAppender.Create(tokens[0], layout);

                if (tokens.Length == 3)
                {
                    var         levelToString = tokens[2];
                    ReportLevel level         = (ReportLevel)Enum.Parse(typeof(ReportLevel), levelToString, true);
                    appender.LevelOfThreshold = level;
                }

                appenders[i] = appender;
            }

            var logger = new Logger(appenders);

            var messageInfoLine = reader.ReadLine();

            while (messageInfoLine != "END")
            {
                var messageTokens = messageInfoLine.Split('|');
                var reportLevel   = messageTokens[0];
                var date          = messageTokens[1];
                var msg           = messageTokens[2];

                switch (reportLevel)
                {
                case "INFO":
                    logger.Info(date, msg);
                    break;

                case "WARNING":
                    logger.Warn(date, msg);
                    break;

                case "ERROR":
                    logger.Error(date, msg);
                    break;

                case "CRITICAL":
                    logger.Critical(date, msg);
                    break;

                case "FATAL":
                    logger.Fatal(date, msg);
                    break;
                }

                messageInfoLine = reader.ReadLine();
            }

            writer.WriteLine("Logger info");

            foreach (var appender in logger.GetAppenders())
            {
                writer.WriteLine(appender.ToString());
            }
        }