예제 #1
0
 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);
     }
 }
예제 #2
0
        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 == "*");
        }
예제 #3
0
        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);
        }