public static ILogger CreateLogger(string sectionName) { var section = ConfigurationManager.GetSection("LoggingConfiguration") as LoggingConfiguration; if (section == null) { return(new NoOpLogger()); } var logger = new FileAppendLogger(Path.Combine(section.Directory, section.ApplicationName + ".log"), true) { Options = 0 }; if (section.EnableDebug) { logger.Options = logger.Options | LogOptions.DebugEnabled; } if (section.EnableInfo) { logger.Options = logger.Options | LogOptions.InfoEnabled; } if (section.EnableWarning) { logger.Options = logger.Options | LogOptions.WarningEnabled; } if (section.EnableError) { logger.Options = logger.Options | LogOptions.ErrorEnabled; } return(logger); }
/// <summary> /// Returns a logger in accordance with the specified settings.</summary> /// <param name="console"> /// If <c>true</c>, the resulting logger will log to the console.</param> /// <param name="file"> /// If non-<c>null</c>, the resulting logger will log to the specified file.</param> /// <param name="logVerbosity"> /// Configures the verbosity of the resulting logger.</param> /// <remarks> /// <para> /// Uses <see cref="ConsoleLogger"/> amd <see cref="FileAppendLogger"/> as appropriate.</para> /// <para> /// If both logging mechanisms are specified, uses a <see cref="MulticastLogger"/> to combine the two.</para></remarks> public static LoggerBase GetLogger(bool console, string file, string logVerbosity) { if (!console && file == null) { return(new NullLogger()); } ConsoleLogger consoleLogger = null; if (console) { consoleLogger = new ConsoleLogger(); consoleLogger.ConfigureVerbosity(logVerbosity); if (file == null) { return(consoleLogger); } } FileAppendLogger fileLogger = null; if (file != null) { fileLogger = new FileAppendLogger(file) { SharingVioWait = TimeSpan.FromSeconds(2) }; fileLogger.ConfigureVerbosity(logVerbosity); if (!console) { return(fileLogger); } } var logger = new MulticastLogger(); logger.Loggers["file"] = fileLogger; logger.Loggers["console"] = consoleLogger; logger.ConfigureVerbosity(logVerbosity); return(logger); }