命令跟踪器
ICommandTracker
接口用于跟踪记录 SQL 命令。数据库连接串中指定 IsTracking 参数后,才会使用命令跟踪器。Fireasy 提供了默认的实现类 DefaultCommandTracker
,用于将 SQL 记录到文本文件中。文本文件位于应用根目录的 __dbtrack 子目录下。
以下是 ICommandTracker
的简单示例,在控制台中输出执行的 SQL:
public class MyCommandTracker : ICommandTracker
{
public void Write(IDbCommand command, TimeSpan period)
{
var content = $@"time: {DateTime.Now}
sql: {command.Output()}
timer(s): {period}
===========================================================
";
Console.WriteLine(content);
}
public void Fail(IDbCommand command, Exception exception)
{
var content = $@"time: {DateTime.Now}
sql: {command.Output()}
error: {exception.Message}
===========================================================
";
Console.WriteLine(content);
}
public async Task WriteAsync(IDbCommand command, TimeSpan period)
{
}
public async Task FailAsync(IDbCommand command, Exception exception)
{
}
}
将 MyCommandTracker
配置到 IOC
容器中即可。