如何在Azure SQL数据库中记录漫游器和用户对话消息?

时间:2019-03-28 10:23:24

标签: c# logging botframework

我已经使用C#在Microsoft botframework sdk v4中创建了一个bot,并且运行良好。现在,我想将这些对话消息记录到azure sql数据库中。我该怎么办?

预先感谢

1 个答案:

答案 0 :(得分:0)

在Bot Builder V4中,ITranscriptLogger取代了IActivityLogger。

您可以在这里找到Entity Framework实现:https://github.com/BotBuilderCommunity/botbuilder-community-dotnet/pull/78

您可以创建一个连接到sql server的 ITranscriptLogger 实现,并在LogActivityAsync

中保留希望从Activity中获得的任何字段
    // Summary:
    //     Transcript logger stores activities for conversations for recall.
    public interface ITranscriptLogger
    {
        // Summary:
        //     Log an activity to the transcript.
        //
        // Parameters:
        //   activity:
        //     The activity to transcribe.
        //
        // Returns:
        //     A task that represents the work queued to execute.
        Task LogActivityAsync(IActivity activity);
    }

一旦有了ITranscriptLogger实现,就可以使用以下命令将其添加到Startup.cs的中间件堆栈中:

var myLogger = new MyTranscriptLogger(Configuration.GetSection("BotDataConnectionString").Value);
var transcriptMiddleware = new TranscriptLoggerMiddleware(myLogger);
options.Middleware.Add(transcriptMiddleware);