在Bot V3版本中我們可以通過實現IActivityLogger介面在進行,但是在Bot V4版本中已經沒有這個介面了。 不過在V4中可以使用TranscriptLoggerMiddleware日誌記錄。 話不多說,開始吧。 通過 Bot Builder SDK for .NET 創建機器人 VS ...
在Bot V3版本中我們可以通過實現IActivityLogger介面在進行,但是在Bot V4版本中已經沒有這個介面了。
不過在V4中可以使用TranscriptLoggerMiddleware日誌記錄。
話不多說,開始吧。
通過 Bot Builder SDK for .NET 創建機器人
VS新建項目選擇BotFramework,如果沒有這個模板,可以到下麵鏈接去下載
https://marketplace.visualstudio.com/items?itemName=BotBuilder.botbuilderv4
ITranscriptLogger
實現ITranscriptLogger介面
1 public class TranscriptLogger : ITranscriptLogger 2 { 3 public async Task LogActivityAsync(IActivity activity) 4 { 5 Debug.WriteLine($"From:{activity.From.Id} - To:{activity.Recipient.Id} - Message:{activity.AsMessageActivity()?.Text}"); 6 } 7 }
在bot中註入TranscriptLoggerMiddleware中間件
1 services.AddTransient<ITranscriptLogger, TranscriptLogger>(); 2 3 services.AddBot<EchoBot1Bot>(options => 4 { 5 var transcriptLoggerService = services.BuildServiceProvider().GetService<ITranscriptLogger>(); 6 options.Middleware.Add(new TranscriptLoggerMiddleware(transcriptLoggerService)); 7 ...... 8 }
使用Bot Framework Emulator與bot交互
Emulator使用說明請看https://github.com/Microsoft/BotFramework-Emulator/wiki/Getting-Started
啟動項目
然後打開Emulator,點擊open bot
選擇項目中的.bot文件
發送消息給bot
Log Result
查看ITranscriptLogger記錄的信息
在輸出視窗我們可以看到兩條記錄,一條是給bot發送的消息,一條是bot的回覆消息。
搞完
就這麼簡單搞完啦,這個Bot中間件還可以做其他更多的用途,這個日誌中間件源碼在https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder/TranscriptLoggerMiddleware.cs。
當然我們可以自定義自己的中間件,怎麼用就看大家腦洞啦~~~~