private void SetupLogging() { // If there is a configuration file then this will already be set if (LogManager.Configuration != null) { loggingReady = true; return; } var config = new LoggingConfiguration(); var fileTarget = new FileTarget { FileName = "serverlog.txt", ArchiveFileName = "serverlog.old.txt", MaxArchiveFiles = 1, ArchiveAboveSize = 104857600, Layout = @"${longdate} | ${logger} | ${message} ${exception:format=toString,Data:maxInnerExceptionLevel=1}" }; var wrapper = new AsyncTargetWrapper(fileTarget, 5000, AsyncTargetWrapperOverflowAction.Discard); config.AddTarget("asyncFileTarget", wrapper); config.LoggingRules.Add(new LoggingRule("*", LogLevel.Info, wrapper)); // only add transmission logging at launch if its enabled, defer rule and target creation otherwise if (ServerSettingsStore.Instance.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_ENABLED).BoolValue) { config = LoggingHelper.GenerateTransmissionLoggingConfig(config, ServerSettingsStore.Instance.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_RETENTION).IntValue); } LogManager.Configuration = config; loggingReady = true; }
private void LogCompleteTransmissions() { while (!_stop) { Thread.Sleep(500); if (_log != !_serverSettings.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_ENABLED).BoolValue) { _log = !_serverSettings.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_ENABLED).BoolValue; string newSetting = _log ? "TRANSMISSION LOGGING ENABLED" : "TRANSMISSION LOGGING DISABLED"; if (_serverSettings.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_ENABLED).BoolValue && _fileTarget == null) // require initialization of transmission logging filetarget and rule { LoggingConfiguration config = LogManager.Configuration; config = LoggingHelper.GenerateTransmissionLoggingConfig(config, _serverSettings.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_RETENTION).IntValue); LogManager.Configuration = config; WrapperTargetBase b = (WrapperTargetBase)LogManager.Configuration.FindTargetByName("asyncTransmissionFileTarget"); _fileTarget = (FileTarget)b.WrappedTarget; } Logger.Info($"EVENT, {newSetting}"); } if (_serverSettings.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_ENABLED).BoolValue&& _fileTarget.MaxArchiveFiles != _serverSettings.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_RETENTION).IntValue) { _fileTarget.MaxArchiveFiles = _serverSettings.GetGeneralSetting(ServerSettingsKeys.TRANSMISSION_LOG_RETENTION).IntValue; LogManager.ReconfigExistingLoggers(); } if (_log && !_currentTransmissionLog.IsEmpty) { foreach (KeyValuePair <SRClient, TransmissionLog> LoggedTransmission in _currentTransmissionLog) { if (LoggedTransmission.Value.IsComplete()) { if (_currentTransmissionLog.TryRemove(LoggedTransmission.Key, out TransmissionLog completedLog)) { Logger.Info($"TRANSMISSION, {LoggedTransmission.Key.ClientGuid}, {LoggedTransmission.Key.Name}, " + $"{LoggedTransmission.Key.Coalition}, {LoggedTransmission.Value.TransmissionFrequency}. " + $"{completedLog.TransmissionStart}, {completedLog.TransmissionEnd}, {LoggedTransmission.Key.VoipPort}"); } } } } } }