public void TestLogging()
        {
            var loggerFactory     = new LoggerFactory();
            var customLogProvider = new CustomLoggerProvider();

            loggerFactory.AddProvider(customLogProvider);

            var tl = new TelemetryLogging(loggerFactory);

            var ex = new Exception("Test Exception level logging");

            tl.Debug("debug level logging message.");
            tl.Info("information level logging message.");
            tl.Warning("warning level logging message.");
            tl.Error("error level logging message.");
            tl.Exception(ex);

            Assert.True(customLogProvider.LogOutput.ContainsKey("NewRelic.Telemetry"));
            var logs = customLogProvider.LogOutput["NewRelic.Telemetry"];

            Assert.Equal(5, logs.Count);
            Assert.Contains("NewRelic Telemetry: debug level logging message.", logs);
            Assert.Contains("NewRelic Telemetry: information level logging message.", logs);
            Assert.Contains("NewRelic Telemetry: warning level logging message.", logs);
            Assert.Contains("NewRelic Telemetry: error level logging message.", logs);
            Assert.Contains($"NewRelic Telemetry: Exception {ex.GetType().FullName}: {ex.Message}", logs);
        }
Ejemplo n.º 2
0
        protected DataSender(TelemetryConfiguration config, ILoggerFactory loggerFactory)
        {
            _config = config;
            _logger = new TelemetryLogging(loggerFactory);

            _httpClient         = new HttpClient();
            _httpClient.Timeout = TimeSpan.FromSeconds(_config.SendTimeout);

            //Ensures that DNS expires regularly.
            var sp = ServicePointManager.FindServicePoint(new Uri(EndpointUrl));

            sp.ConnectionLeaseTimeout = 60000;  // 1 minute

            _httpHandlerImpl = SendDataAsync;
        }