CRM里Plug-in如何写Log?自定义实体还是File System?
-
13/محرم/1433 03:16 ص
请问CRM中注册的Plug-in应该如何正确的写自定义log?
在SDK中提到关于调试Plug会有两种方法,一种是使用ITracingService,还有一种是写入自定义的实体。
但是前者只会将内容返回给客户端,并没有写入永久的log,所以对后续开发和维护不利。而后者会因为插件内部出错或抛出异常之后事务回滚,这样自定义实体的方法貌似也不是很好用。
看到有人说在plug-in中重新new一个IOrganizationService,然后来写自定义实体,这样的话插件只能注册在沙箱外?总感觉这样不可靠,但是现在在用这种方法。还有一种方法是直接操作系统文件,也需要注册在沙箱外,然后在来写入自定义的文件中,但是这样会需要写文件的权限。
不知道怎么做会好些,有没有在插件中写过log的朋友给一些这方面的建议,谢谢!
جميع الردود
-
15/محرم/1433 04:05 ص如果仅仅是调试Plugin,我写了一个小工具,http://www.cnblogs.com/StoneGarden/archive/2011/05/24/2056036.html
daemon lin -
18/محرم/1433 02:34 ص
谢谢 daemonlin,
你提供的工具看起来很不错,在调试的时候会非常有用。但是我可能需要的可能不只是调试,如果在插件中调用了外部服务,当调用出现错时,我想记录log来定位到底是插件哪里出了问题。因为如果是部署之后的话,调试就不是很方便了。
请问还有什么其他的办法吗?
-
19/محرم/1433 03:19 مالمشرف
你可以通过使用EventLog类写Windows事件日志
具体参考:http://www.cnblogs.com/nokiaguy/archive/2009/02/26/1398708.html
你提到的写自定义实体 是没有限制的,注册sandbox与否都不会有问题, 注册sandbox后就无法使用EventLog或者通过直接操作系统文件了,
但是只要你不是用Online模式,你可以选择不注册到sandbox.
微软CRM- تم وضع علامة كإجابة بواسطة Jim Wang MVPMVP, Moderator 18/صفر/1433 03:55 م