控制和取消 Kusto SDK 客户端跟踪

Kusto 客户端库使用常用的跟踪平台。 该平台使用大量跟踪源 (System.Diagnostics.TraceSource),每个跟踪源在其构造过程中都会连接到一组默认的跟踪侦听器 (System.Diagnostics.Trace.Listeners)。

如果应用程序具有与默认 System.Diagnostics.Trace 实例关联的跟踪侦听器(例如,通过其 app.config 文件进行关联),则 Kusto 客户端库会向这些侦听器发出跟踪。

可以通过编程方式或配置文件来取消或控制跟踪。

以编程方式取消跟踪

若要以编程方式从 Kusto 客户端库取消跟踪,请在加载相关库时调用此代码片段:

TraceSourceManager.SetTraceVerbosityForAll(TraceVerbosity.Fatal);

使用配置文件取消跟踪

若要通过配置文件从客户端库取消跟踪,请修改文件 Kusto.Cloud.Platform.dll.tweaks(在 Kusto.Data 库中随附)。

    <!--Overrides the default trace verbosity level-->
    <add key="Kusto.Cloud.Platform.Utils.Tracing.OverrideTraceVerbosityLevel" value="0" />

注意

要使调整生效,key 值中不能有负号

另一种方法是:

Anchor.Tweaks.SetProgrammaticAppSwitch(
    "Kusto.Cloud.Platform.Utils.Tracing.OverrideTraceVerbosityLevel",
    "0"
);

启用客户端库跟踪

若要在客户端库之外启用跟踪,请在应用程序的 app.config 文件中启用 .NET 跟踪。 例如,假定应用程序 MyApp.exe 使用 Kusto.Data 客户端库。 更改文件 MyApp.exe.config,使之包含以下项,在下次启动应用程序时就会启用 Kusto.Data 跟踪。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <trace indentsize="4">
      <listeners>
        <add type="Kusto.Cloud.Platform.Utils.RollingCsvTraceListener2, Kusto.Cloud.Platform" name="RollingCsvTraceListener" initializeData="RollingLogs" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

代码会配置一个跟踪侦听器,该侦听器将写入到名为“RollingLogs”的子目录中的 CSV 文件。 该子目录位于进程的目录中。

注意

也可以使用任何与 .NET 兼容的跟踪侦听器类。

启用 MSAL(Microsoft 身份验证库)跟踪

启用对客户端库的跟踪后,将自动启用对 MSAL(Microsoft 身份验证库)的跟踪。