@@ -1081,77 +1081,58 @@ public virtual EFConnectionInfo ExtractConnectionInfo(IDbContextOptions? options
10811081 return coreOptions ? . Model ;
10821082 }
10831083
1084- static int _messageCounter ;
1085-
10861084 /// <summary>
10871085 /// Logs lin2db trace event to logger.
10881086 /// </summary>
10891087 /// <param name="info">lin2db trace event.</param>
10901088 /// <param name="logger">Logger instance.</param>
10911089 public virtual void LogConnectionTrace ( TraceInfo info , ILogger logger )
10921090 {
1093- Interlocked . Increment ( ref _messageCounter ) ;
1091+ var logLevel = info . TraceLevel switch
1092+ {
1093+ TraceLevel . Off => LogLevel . None ,
1094+ TraceLevel . Error => LogLevel . Error ,
1095+ TraceLevel . Warning => LogLevel . Warning ,
1096+ TraceLevel . Info => LogLevel . Information ,
1097+ TraceLevel . Verbose => LogLevel . Debug ,
1098+ _ => LogLevel . Trace ,
1099+ } ;
1100+
1101+ using var _ = logger . BeginScope ( "TraceInfoStep: {TraceInfoStep}, IsAsync: {IsAsync}" , info . TraceInfoStep , info . IsAsync ) ;
1102+
10941103 switch ( info . TraceInfoStep )
10951104 {
10961105 case TraceInfoStep . BeforeExecute :
1097- logger . LogInformation ( _messageCounter , $ " { info . TraceInfoStep } { Environment . NewLine } { info . SqlText } " ) ;
1106+ logger . Log ( logLevel , "{SqlText}" , info . SqlText ) ;
10981107 break ;
10991108
11001109 case TraceInfoStep . AfterExecute :
1101- logger . LogInformation ( _messageCounter ,
1102- info . RecordsAffected != null
1103- ? $ "Query Execution Time ({ info . TraceInfoStep } ) { ( info . IsAsync ? " (async)" : "" ) } : { info . ExecutionTime } . Records Affected: { info . RecordsAffected } .\r \n "
1104- : $ "Query Execution Time ({ info . TraceInfoStep } ) { ( info . IsAsync ? " (async)" : "" ) } : { info . ExecutionTime } \r \n ") ;
1110+ if ( info . RecordsAffected is null )
1111+ {
1112+ logger . Log ( logLevel , "Query Execution Time: {ExecutionTime}." , info . ExecutionTime ) ;
1113+ }
1114+ else
1115+ {
1116+ logger . Log ( logLevel , "Query Execution Time: {ExecutionTime}. Records Affected: {RecordsAffected}." , info . ExecutionTime , info . RecordsAffected ) ;
1117+ }
11051118 break ;
11061119
11071120 case TraceInfoStep . Error :
11081121 {
1109- var sb = new StringBuilder ( ) ;
1110-
1111- sb . Append ( info . TraceInfoStep ) ;
1112-
1113- for ( var ex = info . Exception ; ex != null ; ex = ex . InnerException )
1114- {
1115- try
1116- {
1117- sb
1118- . AppendLine ( )
1119- . AppendLine ( $ "Exception: { ex . GetType ( ) } ")
1120- . AppendLine ( $ "Message : { ex . Message } ")
1121- . AppendLine ( ex . StackTrace )
1122- ;
1123- }
1124- catch
1125- {
1126- // Sybase provider could generate exception that will throw another exception when you
1127- // try to access Message property due to bug in AseErrorCollection.Message property.
1128- // There it tries to fetch error from first element of list without checking wether
1129- // list contains any elements or not
1130- sb
1131- . AppendLine ( )
1132- . AppendFormat ( "Failed while tried to log failure of type {0}" , ex . GetType ( ) )
1133- ;
1134- }
1135- }
1136-
1137- logger . LogError ( _messageCounter , sb . ToString ( ) ) ;
1138-
1122+ logger . Log ( logLevel , info . Exception , "Failed executing command." ) ;
11391123 break ;
11401124 }
11411125
11421126 case TraceInfoStep . Completed :
11431127 {
1144- var sb = new StringBuilder ( ) ;
1145-
1146- sb . Append ( $ "Total Execution Time ({ info . TraceInfoStep } ){ ( info . IsAsync ? " (async)" : "" ) } : { info . ExecutionTime } .") ;
1147-
1148- if ( info . RecordsAffected != null )
1149- sb . Append ( $ " Rows Count: { info . RecordsAffected } .") ;
1150-
1151- sb . AppendLine ( ) ;
1152-
1153- logger . LogInformation ( _messageCounter , sb . ToString ( ) ) ;
1154-
1128+ if ( info . RecordsAffected is null )
1129+ {
1130+ logger . Log ( logLevel , "Total Execution Time: {TotalExecutionTime}." , info . ExecutionTime ) ;
1131+ }
1132+ else
1133+ {
1134+ logger . Log ( logLevel , "Total Execution Time: {TotalExecutionTime}. Rows Count: {RecordsAffected}." , info . ExecutionTime , info . RecordsAffected ) ;
1135+ }
11551136 break ;
11561137 }
11571138 }
0 commit comments