Esempio n. 1
0
        /// <inheritdoc/>
        protected override (IFullLogger logger, IMockLogTarget mockTarget) GetLogger(LogLevel minimumLogLevel)
        {
            var logTarget = new InMemoryExceptionlessLogTarget();

            var exceptionlessClient = new ExceptionlessClient();

            exceptionlessClient.Configuration.ApiKey = "someapikey";

            var exceptionlessMinLogLevel = _splat2Exceptionless[minimumLogLevel];

            exceptionlessClient.Configuration.UseInMemoryLogger(exceptionlessMinLogLevel);
            exceptionlessClient.Configuration.SetDefaultMinLogLevel(exceptionlessMinLogLevel);
            exceptionlessClient.Configuration.AddPlugin("Use Mock Log Target Interceptor", context => PluginAction(context, logTarget));
            var inner = new ExceptionlessSplatLogger(typeof(ExceptionlessLoggerTests), exceptionlessClient);

            return(new WrappingFullLogger(inner), logTarget);
        }
Esempio n. 2
0
        private static void PluginAction(EventPluginContext obj, InMemoryExceptionlessLogTarget logTarget)
        {
            obj.Cancel = true;
            if (!obj.Event.Type.Equals(Event.KnownTypes.Log, StringComparison.Ordinal))
            {
                return;
            }

            var level = obj.Event.Data.GetValueOrDefault(Event.KnownDataKeys.Level) as string;

            var logLevel = global::Exceptionless.Logging.LogLevel.FromString(level);

            var splatLogLevel = GetSplatLogLevel(logLevel);
            var exception     = obj.ContextData.HasException() ? obj.ContextData.GetException() : null;

            var exceptionMessageSuffix = exception != null ? $" {exception}" : string.Empty;

            (LogLevel logLevel, string message)tuple = (splatLogLevel, $"{obj.Event.Message}{exceptionMessageSuffix}");
            logTarget.Logs.Add(tuple);
        }