@@ -1358,77 +1358,58 @@ public virtual EFConnectionInfo ExtractConnectionInfo(IDbContextOptions? options
13581358 return coreOptions ? . Model ;
13591359 }
13601360
1361- static int _messageCounter ;
1362-
13631361 /// <summary>
13641362 /// Logs lin2db trace event to logger.
13651363 /// </summary>
13661364 /// <param name="info">lin2db trace event.</param>
13671365 /// <param name="logger">Logger instance.</param>
13681366 public virtual void LogConnectionTrace ( TraceInfo info , ILogger logger )
13691367 {
1370- Interlocked . Increment ( ref _messageCounter ) ;
1368+ var logLevel = info . TraceLevel switch
1369+ {
1370+ TraceLevel . Off => LogLevel . None ,
1371+ TraceLevel . Error => LogLevel . Error ,
1372+ TraceLevel . Warning => LogLevel . Warning ,
1373+ TraceLevel . Info => LogLevel . Information ,
1374+ TraceLevel . Verbose => LogLevel . Debug ,
1375+ _ => LogLevel . Trace ,
1376+ } ;
1377+
1378+ using var _ = logger . BeginScope ( "TraceInfoStep: {TraceInfoStep}, IsAsync: {IsAsync}" , info . TraceInfoStep , info . IsAsync ) ;
1379+
13711380 switch ( info . TraceInfoStep )
13721381 {
13731382 case TraceInfoStep . BeforeExecute :
1374- logger . LogInformation ( _messageCounter , $ " { info . TraceInfoStep } { Environment . NewLine } { info . SqlText } " ) ;
1383+ logger . Log ( logLevel , "{SqlText}" , info . SqlText ) ;
13751384 break ;
13761385
13771386 case TraceInfoStep . AfterExecute :
1378- logger . LogInformation ( _messageCounter ,
1379- info . RecordsAffected != null
1380- ? $ "Query Execution Time ({ info . TraceInfoStep } ) { ( info . IsAsync ? " (async)" : "" ) } : { info . ExecutionTime } . Records Affected: { info . RecordsAffected } .\r \n "
1381- : $ "Query Execution Time ({ info . TraceInfoStep } ) { ( info . IsAsync ? " (async)" : "" ) } : { info . ExecutionTime } \r \n ") ;
1387+ if ( info . RecordsAffected is null )
1388+ {
1389+ logger . Log ( logLevel , "Query Execution Time: {ExecutionTime}." , info . ExecutionTime ) ;
1390+ }
1391+ else
1392+ {
1393+ logger . Log ( logLevel , "Query Execution Time: {ExecutionTime}. Records Affected: {RecordsAffected}." , info . ExecutionTime , info . RecordsAffected ) ;
1394+ }
13821395 break ;
13831396
13841397 case TraceInfoStep . Error :
13851398 {
1386- var sb = new StringBuilder ( ) ;
1387-
1388- sb . Append ( info . TraceInfoStep ) ;
1389-
1390- for ( var ex = info . Exception ; ex != null ; ex = ex . InnerException )
1391- {
1392- try
1393- {
1394- sb
1395- . AppendLine ( )
1396- . AppendLine ( $ "Exception: { ex . GetType ( ) } ")
1397- . AppendLine ( $ "Message : { ex . Message } ")
1398- . AppendLine ( ex . StackTrace )
1399- ;
1400- }
1401- catch
1402- {
1403- // Sybase provider could generate exception that will throw another exception when you
1404- // try to access Message property due to bug in AseErrorCollection.Message property.
1405- // There it tries to fetch error from first element of list without checking wether
1406- // list contains any elements or not
1407- sb
1408- . AppendLine ( )
1409- . AppendFormat ( "Failed while tried to log failure of type {0}" , ex . GetType ( ) )
1410- ;
1411- }
1412- }
1413-
1414- logger . LogError ( _messageCounter , sb . ToString ( ) ) ;
1415-
1399+ logger . Log ( logLevel , info . Exception , "Failed executing command." ) ;
14161400 break ;
14171401 }
14181402
14191403 case TraceInfoStep . Completed :
14201404 {
1421- var sb = new StringBuilder ( ) ;
1422-
1423- sb . Append ( $ "Total Execution Time ({ info . TraceInfoStep } ){ ( info . IsAsync ? " (async)" : "" ) } : { info . ExecutionTime } .") ;
1424-
1425- if ( info . RecordsAffected != null )
1426- sb . Append ( $ " Rows Count: { info . RecordsAffected } .") ;
1427-
1428- sb . AppendLine ( ) ;
1429-
1430- logger . LogInformation ( _messageCounter , sb . ToString ( ) ) ;
1431-
1405+ if ( info . RecordsAffected is null )
1406+ {
1407+ logger . Log ( logLevel , "Total Execution Time: {TotalExecutionTime}." , info . ExecutionTime ) ;
1408+ }
1409+ else
1410+ {
1411+ logger . Log ( logLevel , "Total Execution Time: {TotalExecutionTime}. Rows Count: {RecordsAffected}." , info . ExecutionTime , info . RecordsAffected ) ;
1412+ }
14321413 break ;
14331414 }
14341415 }
0 commit comments