private ConsoleColors GetLogLevelConsoleColors(TelemetryLevel logLevel)
        {
            if (DisableColors)
            {
                return(new ConsoleColors(null, null));
            }

            // We must explicitly set the background color if we are setting the foreground color,
            // since just setting one can look bad on the users console.
            switch (logLevel)
            {
            case TelemetryLevel.Critical:
                return(new ConsoleColors(ConsoleColor.White, ConsoleColor.Red));

            case TelemetryLevel.Error:
                return(new ConsoleColors(ConsoleColor.Black, ConsoleColor.Red));

            case TelemetryLevel.Warning:
                return(new ConsoleColors(ConsoleColor.Yellow, ConsoleColor.Black));

            case TelemetryLevel.Informational:
                return(new ConsoleColors(ConsoleColor.DarkGreen, ConsoleColor.Black));

            case TelemetryLevel.Verbose:
                return(new ConsoleColors(ConsoleColor.Gray, ConsoleColor.Black));

            case TelemetryLevel.Metric:
                return(new ConsoleColors(ConsoleColor.Gray, ConsoleColor.Black));

            default:
                return(new ConsoleColors(DefaultConsoleColor, DefaultConsoleColor));
            }
        }
Beispiel #2
0
        public void SetConsentLevel(TelemetryLevel telemetryLevel)
        {
            var currentUser = _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser;

            _logger.LogInformation("Telemetry level set to {telemetryLevel} by {username}", telemetryLevel, currentUser?.Username);
            _keyValueService.SetValue(Key, telemetryLevel.ToString());
        }
        private static string GetLogLevelString(TelemetryLevel logLevel)
        {
            switch (logLevel)
            {
            case TelemetryLevel.Metric:
                return("metric:   ");

            case TelemetryLevel.Verbose:
                return("verbose:  ");

            case TelemetryLevel.Informational:
                return("info:     ");

            case TelemetryLevel.Warning:
                return("warning:  ");

            case TelemetryLevel.Error:
                return("error:    ");

            case TelemetryLevel.Critical:
                return("critical: ");

            default:
                throw new ArgumentOutOfRangeException(nameof(logLevel));
            }
        }
Beispiel #4
0
        public EventData(
            DateTimeOffset timestamp,
            string eventSourceName,
            string eventName,
            TelemetryLevel telemetryLevel,
            string message,
            string cv,
            string tag,
            double?value,
            IEnumerable <KeyValuePair <string, object> > properties
            )
        {
            Verify.IsNotEmpty(nameof(eventName), eventName);
            Verify.IsNotNull(nameof(eventSourceName), eventSourceName);

            Timestamp       = timestamp;
            EventSourceName = eventSourceName;
            EventName       = eventName;
            TelemetryLevel  = telemetryLevel;
            Message         = message;
            Cv         = cv;
            Tag        = tag;
            Value      = value;
            Properties = properties?.ToList();
        }
Beispiel #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Telemetry"/> class.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="level">The level.</param>
 /// <param name="body">The body.</param>
 public Telemetry(
     TelemetrySource source
     , TelemetryLevel level
     , TelemetryBody body
     )
     : this(source, level, body, null)
 {
 }
Beispiel #6
0
    public void Can_Store_Consent(TelemetryLevel level)
    {
        MetricsConsentService.SetConsentLevel(level);

        var actual = MetricsConsentService.GetConsentLevel();

        Assert.IsNotNull(actual);
        Assert.AreEqual(level, actual);
    }
Beispiel #7
0
 public EventData(
     string eventSourceName,
     string eventName,
     TelemetryLevel telemetryLevel,
     string cv,
     string tag,
     IEnumerable <KeyValuePair <string, object> > properties
     )
     : this(DateTimeOffset.UtcNow, eventSourceName, eventName, telemetryLevel, null, cv, tag, null, properties)
 {
 }
Beispiel #8
0
    public void SetConsentLevel(TelemetryLevel telemetryLevel)
    {
        IUser?currentUser = _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser;

        if (currentUser is null)
        {
            currentUser = _userService.GetUserById(Constants.Security.SuperUserId);
        }

        _logger.LogInformation("Telemetry level set to {telemetryLevel} by {username}", telemetryLevel, currentUser?.Username);
        _keyValueService.SetValue(Key, telemetryLevel.ToString());
    }
Beispiel #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Telemetry"/> class.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="level">The level.</param>
        /// <param name="body">The body.</param>
        /// <param name="arbitraryKeyValuePairs">The arbitrary key value pairs.</param>
        public Telemetry(
            TelemetrySource source
            , TelemetryLevel level
            , TelemetryBody body
            , IDictionary <string, object> arbitraryKeyValuePairs = null
            )
            : base(arbitraryKeyValuePairs)
        {
            Assumption.AssertNotNull(body, nameof(body));

            this.Timestamp = (long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds;
            this.Source    = source;
            this.Level     = level;
            this.Type      = body.Type;
            this.Body      = body;

            Validate();
        }
Beispiel #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Telemetry"/> class.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="level">The level.</param>
        /// <param name="body">The body.</param>
        /// <param name="arbitraryKeyValuePairs">The arbitrary key value pairs.</param>
        public Telemetry(
            TelemetrySource source
            , TelemetryLevel level
            , TelemetryBody body
            , IDictionary <string, object> arbitraryKeyValuePairs = null
            )
            : base(arbitraryKeyValuePairs)
        {
            Assumption.AssertNotNull(body, nameof(body));

            this.Timestamp = DateTimeUtil.ConvertToUnixTimestampInMilliseconds(DateTime.UtcNow);
            this.Source    = source;
            this.Level     = level;
            this.Type      = body.Type;
            this.Body      = body;

            Validate();
        }
        public static EventLevel ConverTo(this TelemetryLevel telemetryType)
        {
            switch (telemetryType)
            {
            case TelemetryLevel.Verbose:
                return(EventLevel.Verbose);

            case TelemetryLevel.Informational:
                return(EventLevel.Informational);

            case TelemetryLevel.Warning:
                return(EventLevel.Warning);

            case TelemetryLevel.Error:
                return(EventLevel.Error);

            case TelemetryLevel.Critical:
                return(EventLevel.Critical);

            default:
                return(EventLevel.Verbose);
            }
        }
Beispiel #12
0
 public RunSummaryInspector(ILoggerFactory loggerFactory, TelemetryLevel telemetryLevel)
 {
     _logger         = loggerFactory.CreateLogger <RunSummaryInspector>();
     _telemetryLevel = telemetryLevel;
 }
Beispiel #13
0
 private string GetTelemetryLevelDescription(TelemetryLevel telemetryLevel) => telemetryLevel switch
 {
Beispiel #14
0
 public MetricsConfig(IMetricUploader metricUploader, TelemetryLevel telemetryLevel)
 {
     MetricUploader = metricUploader;
     TelemetryLevel = telemetryLevel;
 }
Beispiel #15
0
        public void LogEvent(IWorkContext context, TelemetryLevel telemetryLevel, string eventSourceName, string eventName, object dimensions)
        {
            var dim = context.Materialized(dimensions);

            _router.Post(new EventData(eventSourceName, eventName, telemetryLevel, context.Cv, context.Tag, dim));
        }
Beispiel #16
0
 public void LogEvent(IWorkContext context, TelemetryLevel telemetryLevel, string eventSourceName, string eventName, object dimensions)
 {
 }
Beispiel #17
0
 public void LogEvent(IWorkContext context, TelemetryLevel telemetryLevel, string eventSourceName, string eventName, IEventDimensions dimensions = null)
 {
 }
Beispiel #18
0
 public UserInspector(ILoggerFactory loggerFactory, TelemetryLevel telemetryLevel)
 {
     _logger         = loggerFactory.CreateLogger <UserInspector>();
     _telemetryLevel = telemetryLevel;
 }