Dataverse插件日志无法发送至Azure Application Insights问题求助
检查插件注册的上下文权限
插件注册时,确保使用的安全角色拥有启用插件跟踪的权限,同时确认插件执行的用户上下文有足够权限访问PluginTraceLog等日志相关实体。ILogger在Dataverse中依赖插件跟踪机制,权限不足会导致日志被拦截,IsEnabled返回False。确认全局插件跟踪设置已开启
在Dataverse环境设置中进入插件跟踪配置,确保已启用“启用插件跟踪”,并设置匹配需求的日志级别(如信息级及以上)。全局跟踪未开启时,ILogger会处于禁用状态,所有日志级别对应的IsEnabled都会返回False。修正ILogger实例的获取方式
避免直接获取非泛型ILogger实例,应获取对应插件类的泛型ILogger<>实例,正确代码示例:var logger = serviceProvider.GetService(typeof(ILogger<YourPluginClassName>)) as ILogger<YourPluginClassName>;非泛型ILogger在Dataverse插件环境中可能未被正确初始化,导致日志功能无法启用。
验证数据导出配置的实体覆盖范围
确认Dataverse到Application Insights的导出配置中,已将PluginTraceLog实体添加到导出列表。默认导出可能仅包含系统日志,需手动添加该实体,否则插件跟踪日志无法同步到App Insights。检查插件的执行模式与隔离级别
若插件注册为沙盒模式,需确认沙盒环境允许日志输出。同时,避免使用“无”或“部分信任”的隔离级别,建议使用“沙盒”隔离级别并确保环境配置支持沙盒插件写入日志。排查Dataverse本地日志存储
先检查Dataverse的PluginTraceLog实体是否存在插件日志记录。如果本地也无日志,说明问题出在日志生成环节,需确认插件是否正常执行,或是否有未捕获异常导致日志代码未执行。
内容的提问来源于stack exchange,提问作者nicolai

