static ApiCallLogger() { try { // Ensure we have a directory to place logs in if (LoggingConfigSettings.Instance().ProviderLogFileLocationBase == null) { payloadLoggingDisabled = true; } else if (!Directory.Exists(LoggingConfigSettings.Instance().ProviderLogFileLocationBase)) { Directory.CreateDirectory(LoggingConfigSettings.Instance().ProviderLogFileLocationBase); } } catch (Exception ex) { Logger.Instance.Error(typeof(ApiCallLogger).Name, "ApiCallLogger", ex, "Could not create directory " + LoggingConfigSettings.Instance().ProviderLogFileLocationBase); } }
private bool ShouldProviderPayloadBeLogged(string provider) { var include = (LoggingConfigSettings.Instance().ProviderPayloadLoggingInclude ?? "").ToUpper(); var exclude = (LoggingConfigSettings.Instance().ProviderPayloadLoggingExclude ?? "*").ToUpper(); // Explicit exclude overrides all if (exclude.Contains(provider.ToUpper())) { return(false); } // Explicit include overrides excludes if (include.Contains(provider.ToUpper())) { return(true); } // Default - only if include is * return(include == "*"); }
private string GetLogRoot(string provider) { string fileNameRoot; string userId = "NA"; try { if (System.Threading.Thread.CurrentPrincipal != null) { userId = System.Threading.Thread.CurrentPrincipal.Identity.Name; } } catch (Exception ex) { Logger.Instance.Error("ApiCallLogger", "GetLogRoot", ex, "Could not locate the user identity"); } lock (lockObj) { if (++safeInstanceCount >= 100) { safeInstanceCount = 1; } var logPath = LoggingConfigSettings.Instance().ProviderLogFileLocationBase; if (this.logProviderNameDirectory) { logPath = Path.Combine(logPath, provider); } if (!Directory.Exists(logPath)) { try { Directory.CreateDirectory(logPath); } catch (Exception ex) { Logger.Instance.Error(typeof(ApiCallLogger).Name, "GetLogRoot", ex, "Could not create directory " + logPath); } } fileNameRoot = Path.Combine( logPath, string.Format( "{9}-LOG-{8}-{0}{1}{2}_{3}.{4}.{5}.{6}_{7}", DateTime.Now.Year, DateTime.Now.Month.ToString("00"), DateTime.Now.Day.ToString("00"), DateTime.Now.Hour.ToString("00"), DateTime.Now.Minute.ToString("00"), DateTime.Now.Second.ToString("00"), DateTime.Now.Millisecond.ToString("000"), safeInstanceCount, userId.Replace(Path.DirectorySeparatorChar.ToString(), string.Empty) .Replace(Path.AltDirectorySeparatorChar.ToString(), string.Empty), provider)); } return(fileNameRoot); }