Microsoft Bot Framework V4使用ITranscriptLogger进行日志记录
程序员文章站
2022-07-28 11:13:22
在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。
当然我们可以自定义自己的中间件,怎么用就看大家脑洞啦~~~~