private static ILogger InitializeLogger() { ICollection <IAppender> appenders = new List <IAppender>(); LayoutFactory layoutFactory = new LayoutFactory(); AppenderFactory appenderFactory = new AppenderFactory(layoutFactory); int appenderCount = int.Parse(Console.ReadLine()); for (int i = 0; i < appenderCount; i++) { string[] args = Console.ReadLine().Split(); string appenderType = args[0]; string layoutType = args[1]; string errorLevel = "INFO"; if (args.Length == 3) { errorLevel = args[2]; } IAppender appender = appenderFactory.CreateAppender(appenderType, errorLevel, layoutType); appenders.Add(appender); } ILogger logger = new Loggers.Logger(appenders); return(logger); }
public static void Main(string[] args) { var simpleLayout = new SimpleLayout(); var consoleAppender = new ConsoleAppender(simpleLayout); consoleAppender.ReportLevel = ReportLevel.Error; var logger = new Loggers.Logger(consoleAppender); logger.Info("3/31/2015 5:33:07 PM", "Everything seems fine"); logger.Warning("3/31/2015 5:33:07 PM", "Warning: ping is too high - disconnect imminent"); logger.Error("3/31/2015 5:33:07 PM", "Error parsing request"); logger.Critical("3/31/2015 5:33:07 PM", "No connection string found in App.config"); logger.Fatal("3/31/2015 5:33:07 PM", "mscorlib.dll does not respond"); }
private static void Main(string[] args) { ILayout simpleLayout = new SimpleLayout(); //this is a client created layout implemented in the current project ILayout xmLayout = new XmLlayout(); IAppender consoleAppender = new ConsoleAppender(simpleLayout); consoleAppender.ReportLevel = EntryLevel.Critical; IFileAppender fileAppender = new FileAppender(xmLayout); fileAppender.ReportLevel = EntryLevel.Info; fileAppender.File = "..\\..\\log.xml"; ILogger logger = new Logger(consoleAppender, fileAppender); // NOTE: I have redesigned the logger class so that we can easily // add additional levels of warnings (Debug for instance) without the need to edit the Logger class // Also I added a functionality to turn logging 'on' and 'off' without the need to comment or delete // existing logger.Log lines. Default value is 'on'. logger.IsLogging = false; logger.Log(EntryLevel.Info, "This is just an info message."); logger.Log(EntryLevel.Warning, "This is a warning."); logger.Log(EntryLevel.Error, "Error parsing JSON."); logger.Log(EntryLevel.Critical, "Situation is critical!"); logger.Log(EntryLevel.Fatal, "Just Give Up"); logger.IsLogging = true; logger.Log(EntryLevel.Info, "This is just an info message."); logger.Log(EntryLevel.Warning, "This is a warning."); logger.Log(EntryLevel.Error, "Error parsing JSON."); logger.Log(EntryLevel.Critical, "Situation is critical!"); logger.Log(EntryLevel.Fatal, "Just Give Up"); }