有没有办法将scheduledTransferPeriod设置为不到一分钟?

时间:2013-11-06 09:22:24

标签: c# logging azure azure-diagnostics

我正在尝试为Windows Azure服务设置日志记录 我按here所述使用nlog并使其正常运行,但现在我想尝试不同的设置等。目前我的diagnostics.wadcfg看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<DiagnosticMonitorConfiguration configurationChangePollInterval="PT1M" overallQuotaInMB="4096" xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
  <DiagnosticInfrastructureLogs />
  <Directories>
    <IISLogs container="wad-iis-logfiles" />
    <CrashDumps container="wad-crash-dumps" />
  </Directories>
  <Logs bufferQuotaInMB="1024" scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" />
</DiagnosticMonitorConfiguration>

我发现一分钟是scheduledTransferPeriod的最小值。但是它对于开发来说非常不方便,因为我必须等待一段时间后我在日志记录中进行测试。有没有办法减少这个时间?或者我做错了什么?

1 个答案:

答案 0 :(得分:3)

不,你没有做错任何事。您可以尝试添加PT10S或类似的东西,但我相信这只会缩短到一分钟。实例上的诊断代理将数据从缓冲区中刷新到存储帐户中,我认为它们不会在不到1分钟的时间间隔内完成。这对于开发或测试来说可能是令人沮丧的,但对于实际生产运行来说,设置这么低的东西会对机器的性能产生重大影响。该系统并非旨在快速提供信息。

由于您使用nlog,因此使用target that writes directly to Windows Azure Table storage是一个选项。然后在进行测试时,您可以查看表中的值。有些人也会这样做,而不是使用日志传输机制。当然,您正在不时地进行单一转移交易,以及可能非常繁琐的交易,因此请确保您考虑影响交易以及在生产中使用此交易的开销。直接进入表存储的一个好处是,如果实例在刷新数据之间发生故障,则不会有丢失缓冲区中数据的风险。