private static IAppender[] ReadAllAppenders(IReader reader, LayoutFactory layoutFactory, AppenderFactory appenderFactory) { int N = int.Parse(reader.ReadLine()); IAppender[] appenders = new IAppender[N]; for (int i = 0; i < N; i++) { // "<appender type> <layout type> <REPORT LEVEL>" string[] appenderArgs = reader.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries); string type = appenderArgs[0]; string layoutType = appenderArgs[1]; ILayout layout = layoutFactory.GetLayout(layoutType); IAppender appender = null; if (appenderArgs.Length == 3) { string reportLevel = appenderArgs[2]; appender = appenderFactory.GetAppender(type, layout, reportLevel); } else { appender = appenderFactory.GetAppender(type, layout); } appenders[i] = appender; } return(appenders); }
private static void ParseAppendersInput(int appendersCount, AppenderFactory appenderFactory, ICollection <IAppender> appenders) { for (int counter = 0; counter < appendersCount; counter++) { var appendersArgs = Console.ReadLine() .Split(' '); var type = appendersArgs[0]; var layout = appendersArgs[1]; var level = "INFO"; if (appendersArgs.Length == 3) { level = appendersArgs[2]; } IAppender currentAppender; try { currentAppender = appenderFactory.GetAppender(type, layout, level); appenders.Add(currentAppender); } catch (ArgumentException ae) { Console.WriteLine(ae.Message); } } }
private static void ReadAppendersData(int appendersCount, ICollection <IAppender> appenders, AppenderFactory appenderFactory) { for (int i = 0; i < appendersCount; i++) { string[] appendersInfo = Console.ReadLine() .Split() .ToArray(); string appenderType = appendersInfo[0]; string layoutType = appendersInfo[1]; string levelStr = "INFO"; if (appendersInfo.Length == 3) { levelStr = appendersInfo[2]; } try { IAppender appender = appenderFactory.GetAppender(appenderType, layoutType, levelStr); appenders.Add(appender); } catch (Exception e) { //Output needed? Console.WriteLine(e.Message); continue; } } }
private static void ReadAppendersData(int appendersCount, ICollection <IAppender> appenders, AppenderFactory appenderFactory) { for (int i = 0; i < appendersCount; i++) { string[] appendersInfo = Console.ReadLine() .Split(); string appenderType = appendersInfo[0]; string layoutType = appendersInfo[1]; string levelString = "INFO"; if (appendersInfo.Length == 3) { levelString = appendersInfo[2]; } try { IAppender appender = appenderFactory.GetAppender(appenderType, layoutType, levelString); appenders.Add(appender); } catch (Exception) { } } }
private static ILogger InitializeLogger() { var appenders = new List <IAppender>(); var appendersCount = int.Parse(Console.ReadLine()); var layoutFactory = new LayoutFactory(); var appenderFactory = new AppenderFactory(layoutFactory); for (int i = 0; i < appendersCount; i++) { var inputTokens = Console.ReadLine() .Split(' ', StringSplitOptions.RemoveEmptyEntries); var appenderType = inputTokens[0]; var layoutType = inputTokens[1]; var errorLevel = ErrorLevel.INFO; if (inputTokens.Length == 3) { errorLevel = (ErrorLevel)Enum.Parse(typeof(ErrorLevel), inputTokens[2]); } var appender = appenderFactory.GetAppender(appenderType, errorLevel, layoutType); appenders.Add(appender); } var logger = new Logger(appenders); return(logger); }
private static void ReadAppendersData(int numberOfApenders, ICollection <IAppender> appenders, AppenderFactory appenderFactory) { for (int i = 0; i < numberOfApenders; i++) { string[] appendersInfo = Console.ReadLine() .Split(" "); string appendersType = appendersInfo[0]; string layoutType = appendersInfo[1]; string levelStr = "INFO"; if (appendersInfo.Length == 3) { levelStr = appendersInfo[2]; } try { IAppender appender = appenderFactory.GetAppender (appendersType, layoutType, levelStr); appenders.Add(appender); } catch (Exception e) { Console.WriteLine(e.Message); continue; } } }
public void AddAppender(string appenderInfo) { var data = appenderInfo.Split(" "); var appenderType = data[0]; var layoutType = data[1]; var layout = layoutFactory.GetLayout(layoutType); //Since the input doesn't provide information for the console or the file, the default for this project will be used //which will break the Liskov principle, but this should be rather here than in the Appender classes. IAppender appender = null; if (appenderType == "ConsoleAppender") { var writableObject = writableObjectsFactory.GetWritableObject("Console"); appender = appenderFactory.GetAppender(appenderType, layout, writableObject); } else if (appenderType == "FileAppender") { var writableObject = writableObjectsFactory.GetWritableObject("LogFile"); appender = appenderFactory.GetAppender(appenderType, layout, writableObject); } if (data.Length > 2 && Enum.TryParse(data[2], true, out ReportLevels reportLevelLimit)) { appender.ReportLevel = reportLevelLimit; } if (logger is null) { logger = new Loggers.Logger(appender); } else { logger.AddAppenders(appender); } }