Esempio n. 1
0
 public void WriteLog(
     TelemetryLogLevel logLevel,
     string section,
     string logMessage,
     IDictionary <string, string> properties = null,
     Exception exception = null)
 {
     this.telemetryProvider.WriteLog(
         logLevel,
         string.IsNullOrWhiteSpace(section) ? logMessage : $"[{section}] {logMessage}",
         properties,
         exception);
 }
Esempio n. 2
0
 public void WriteLog(
     TelemetryLogLevel logLevel,
     string section,
     string summary,
     IEnumerable <string> details,
     IDictionary <string, string> properties = null,
     Exception exception = null)
 {
     this.WriteLog(
         logLevel,
         section,
         $"{summary}{string.Join(string.Empty, details.Select(s => $"\r\n\t{s}"))}",
         properties,
         exception);
 }
        public void WriteLog(
            TelemetryLogLevel logLevel,
            string logMessage,
            IDictionary <string, string> properties,
            Exception exception = null)
        {
            var msg = logMessage;

            if (exception != null)
            {
                msg += FormattableString.Invariant($"{Environment.NewLine}Exception:{Environment.NewLine}{exception.GetDetailMessage()}");
                this.telemetryClient?.TrackException(exception);
            }

            var now = DateTime.UtcNow;

            switch (logLevel)
            {
            case TelemetryLogLevel.Verbose:
            case TelemetryLogLevel.Information:
            default:
                Trace.TraceInformation(FormattableString.Invariant($"{now}: {msg}"));
                break;

            case TelemetryLogLevel.Warning:
                Trace.TraceWarning(FormattableString.Invariant($"{now}: {msg}"));
                break;

            case TelemetryLogLevel.Error:
            case TelemetryLogLevel.Critical:
                Trace.TraceError(FormattableString.Invariant($"{now}: {msg}"));
                break;
            }

            var traceTelemetry = new TraceTelemetry(msg, ToSeverityLevel(logLevel))
            {
                Timestamp = now,
            };

            traceTelemetry.Properties.Merge(properties);

            this.telemetryClient?.TrackTrace(traceTelemetry);
        }
        private static SeverityLevel ToSeverityLevel(TelemetryLogLevel logLevel)
        {
            switch (logLevel)
            {
            case TelemetryLogLevel.Verbose:
            default:
                return(SeverityLevel.Verbose);

            case TelemetryLogLevel.Information:
                return(SeverityLevel.Information);

            case TelemetryLogLevel.Warning:
                return(SeverityLevel.Warning);

            case TelemetryLogLevel.Error:
                return(SeverityLevel.Error);

            case TelemetryLogLevel.Critical:
                return(SeverityLevel.Critical);
            }
        }
Esempio n. 5
0
        private static void Log(
            TelemetryLogLevel logLevel,
            string message,
            TelemetryContext context = null,
            Exception exception      = null)
        {
            RunTelemetryAction(() =>
            {
                TelemetryManager.WriteLog(
                    logLevel,
                    "WebApp",
                    message,
                    GetProperties(context),
                    exception);

                if (exception != null)
                {
                    WriteMetric(TelemetryMetricNames.ExceptionOccurred);
                }
            });
        }