命令跟踪器


  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 容器中即可。