/// <summary> /// Ensures log level, log target configuration /// </summary> /// <param name="log"></param> /// <param name="args"></param> private static void EnsureLoggerConfiguration(Logger log, ProgramStartupParameters psp) { if (log == null) { throw new ArgumentNullException("log"); } if (psp == null) { throw new ArgumentNullException("psp"); } if (psp.ConsoleLoggingEnabled) { log.EnableConsoleLogging(); } if (psp.FileLoggingEnabled) { try { log.EnableFileLogging(psp.LogFileName); } catch (UnauthorizedAccessException) { Program.Exit(ExitCodes.LOG_FILE_ACCESS_DENIED); } catch (Exception) { Program.Exit(ExitCodes.LOG_FILE_CREATE_ERROR); } } if (psp.EventLoggingEnabled) { try { log.EnableEventLogLogging("RunAsUser"); } catch (SecurityException) { Program.Exit(ExitCodes.LOG_EVENTLOG_ACCESS_DENIED); } catch (Exception) { Program.Exit(ExitCodes.LOG_EVENTLOG_CREATE_ERROR); } } log.Level = psp.LogLevel; }
/// <summary> /// Initializes all current loggers and all further loggers with the startup parameters. /// </summary> /// <param name="parameters"></param> public static void InitConfiguration(ProgramStartupParameters parameters) { if (LogFactory.parameters == null) { lock (lockMutex) if (LogFactory.parameters == null) { LogFactory.parameters = parameters; if (registeredLoggers.Count > 0) { foreach (Logger registeredLogger in registeredLoggers.Values) { EnsureLoggerConfiguration(registeredLogger, parameters); } } } } }