コード例 #1
0
        public void ValidateTelemetryItem(string type)
        {
            var logRecords = new List <LogRecord>();

            using var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder.AddOpenTelemetry(options =>
                {
                    options.ParseStateValues = true;
                    options.AddInMemoryExporter(logRecords);
                });
                builder.AddFilter(typeof(LogsHelperTests).FullName, LogLevel.Trace);
            });

            var logger = loggerFactory.CreateLogger <LogsHelperTests>();

            if (type == "MessageData")
            {
                logger.LogInformation("This is a test log");
            }
            else
            {
                logger.LogWarning(new Exception("Test Exception"), "Test Exception");
            }

            var telemetryItem = LogsHelper.OtelToAzureMonitorLogs(new Batch <LogRecord>(logRecords.ToArray(), logRecords.Count), "roleName", "roleInstance", "Ikey");

            Assert.Equal(type, telemetryItem[0].Data.BaseType);
            Assert.Equal("Ikey", telemetryItem[0].InstrumentationKey);
            Assert.Equal("roleName", telemetryItem[0].Tags[ContextTagKeys.AiCloudRole.ToString()]);
            Assert.Equal("roleInstance", telemetryItem[0].Tags[ContextTagKeys.AiCloudRoleInstance.ToString()]);
        }