@@ -1351,7 +1351,50 @@ public void RecordLogMessage_NoTransaction_NoMessage_WithException_Success()
1351
1351
}
1352
1352
1353
1353
[ Test ]
1354
- public void RecordLogMessage_NoTransaction_NoMessage_NoException_DropsEvent ( )
1354
+ public void RecordLogMessage_NoTransaction_NoMessage_NoException_WithContextData_Success ( )
1355
+ {
1356
+ Mock . Arrange ( ( ) => _configurationService . Configuration . LogEventCollectorEnabled )
1357
+ . Returns ( true ) ;
1358
+ Mock . Arrange ( ( ) => _configurationService . Configuration . ContextDataEnabled )
1359
+ . Returns ( true ) ;
1360
+
1361
+ var timestamp = DateTime . Now ;
1362
+ var timestampUnix = timestamp . ToUnixTimeMilliseconds ( ) ;
1363
+ var level = "DEBUG" ;
1364
+ string message = null ;
1365
+ var contextData = new Dictionary < string , object > ( ) { { "key1" , "value1" } , { "key2" , 1 } } ;
1366
+
1367
+ Func < object , string > getLevelFunc = ( l ) => level ;
1368
+ Func < object , DateTime > getTimestampFunc = ( l ) => timestamp ;
1369
+ Func < object , string > getMessageFunc = ( l ) => message ;
1370
+ Func < object , Exception > getLogExceptionFunc = ( l ) => null ;
1371
+ Func < object , Dictionary < string , object > > getContextDataFunc = ( l ) => contextData ;
1372
+
1373
+ var spanId = "spanid" ;
1374
+ var traceId = "traceid" ;
1375
+ var loggingFramework = "testFramework" ;
1376
+
1377
+ var xapi = _agent as IAgentExperimental ;
1378
+ xapi . RecordLogMessage ( loggingFramework , new object ( ) , getTimestampFunc , getLevelFunc , getMessageFunc , getLogExceptionFunc , getContextDataFunc , spanId , traceId ) ;
1379
+
1380
+ // Access the private collection of events to get the number of add attempts.
1381
+ var privateAccessor = new PrivateAccessor ( _logEventAggregator ) ;
1382
+ var logEvents = privateAccessor . GetField ( "_logEvents" ) as ConcurrentPriorityQueue < PrioritizedNode < LogEventWireModel > > ;
1383
+
1384
+ var logEvent = logEvents ? . FirstOrDefault ( ) ? . Data ;
1385
+ Assert . AreEqual ( 1 , logEvents . Count ) ;
1386
+ Assert . IsNotNull ( logEvent ) ;
1387
+ Assert . AreEqual ( timestampUnix , logEvent . TimeStamp ) ;
1388
+ Assert . AreEqual ( level , logEvent . Level ) ;
1389
+ Assert . AreEqual ( message , logEvent . Message ) ;
1390
+ Assert . AreEqual ( spanId , logEvent . SpanId ) ;
1391
+ Assert . AreEqual ( traceId , logEvent . TraceId ) ;
1392
+ Assert . AreEqual ( contextData , logEvent . ContextData ) ;
1393
+ Assert . IsNotNull ( logEvent . Priority ) ;
1394
+ }
1395
+
1396
+ [ Test ]
1397
+ public void RecordLogMessage_NoTransaction_NoMessage_NoException_NoContextData_DropsEvent ( )
1355
1398
{
1356
1399
Mock . Arrange ( ( ) => _configurationService . Configuration . LogEventCollectorEnabled )
1357
1400
. Returns ( true ) ;
@@ -1473,7 +1516,51 @@ public void RecordLogMessage_WithTransaction_NoMessage_WithException_Success()
1473
1516
}
1474
1517
1475
1518
[ Test ]
1476
- public void RecordLogMessage_WithTransaction_NoMessage_NoException_DropsEvent ( )
1519
+ public void RecordLogMessage_WithTransaction_NoMessage_NoException_WithContextData_Success ( )
1520
+ {
1521
+ Mock . Arrange ( ( ) => _configurationService . Configuration . LogEventCollectorEnabled )
1522
+ . Returns ( true ) ;
1523
+ Mock . Arrange ( ( ) => _configurationService . Configuration . ContextDataEnabled )
1524
+ . Returns ( true ) ;
1525
+
1526
+ var timestamp = DateTime . Now ;
1527
+ var timestampUnix = timestamp . ToUnixTimeMilliseconds ( ) ;
1528
+ var level = "DEBUG" ;
1529
+ string message = null ;
1530
+ var contextData = new Dictionary < string , object > ( ) { { "key1" , "value1" } , { "key2" , 1 } } ;
1531
+
1532
+ Func < object , string > getLevelFunc = ( l ) => level ;
1533
+ Func < object , DateTime > getTimestampFunc = ( l ) => timestamp ;
1534
+ Func < object , string > getMessageFunc = ( l ) => message ;
1535
+ Func < object , Exception > getLogExceptionFunc = ( l ) => null ;
1536
+ Func < object , Dictionary < string , object > > getContextDataFunc = ( l ) => contextData ;
1537
+
1538
+ var spanId = "spanid" ;
1539
+ var traceId = "traceid" ;
1540
+ var loggingFramework = "testFramework" ;
1541
+
1542
+ SetupTransaction ( ) ;
1543
+ var transaction = _transactionService . GetCurrentInternalTransaction ( ) ;
1544
+ var priority = transaction . Priority ;
1545
+
1546
+ var xapi = _agent as IAgentExperimental ;
1547
+ xapi . RecordLogMessage ( loggingFramework , new object ( ) , getTimestampFunc , getLevelFunc , getMessageFunc , getLogExceptionFunc , getContextDataFunc , spanId , traceId ) ;
1548
+
1549
+ var harvestedLogEvents = transaction . HarvestLogEvents ( ) ;
1550
+ var logEvent = harvestedLogEvents . FirstOrDefault ( ) ;
1551
+ Assert . AreEqual ( 1 , harvestedLogEvents . Count ) ;
1552
+ Assert . IsNotNull ( logEvent ) ;
1553
+ Assert . AreEqual ( timestampUnix , logEvent . TimeStamp ) ;
1554
+ Assert . AreEqual ( level , logEvent . Level ) ;
1555
+ Assert . AreEqual ( message , logEvent . Message ) ;
1556
+ Assert . AreEqual ( spanId , logEvent . SpanId ) ;
1557
+ Assert . AreEqual ( traceId , logEvent . TraceId ) ;
1558
+ Assert . AreEqual ( contextData , logEvent . ContextData ) ;
1559
+ Assert . AreEqual ( priority , logEvent . Priority ) ;
1560
+ }
1561
+
1562
+ [ Test ]
1563
+ public void RecordLogMessage_WithTransaction_NoMessage_NoException_NoContextData_DropsEvent ( )
1477
1564
{
1478
1565
Mock . Arrange ( ( ) => _configurationService . Configuration . LogEventCollectorEnabled )
1479
1566
. Returns ( true ) ;
0 commit comments