1

我正在尝试为 Windows Azure 服务设置日志记录。
我按照这里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. 但这对于开发目的非常不方便,因为我必须在每次更改日志后等待一分钟才能对其进行测试。有没有办法减少这个时间?还是我做错了什么?

4

1 回答 1

3

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

由于您使用 nlog,因此一种选择是使用直接写入 Windows Azure 表存储的目标。然后,当您进行测试时,您可以查看表格中的值。有些人也在生产中这样做,而不是使用日志传输机制。当然,您会不时地交易单笔转账,而这可能是非常健谈的事情,因此请确保您考虑在生产中使用它的影响交易和开销明智。直接使用表存储的一个好处是,如果实例在刷新数据期间出现故障,则不会冒丢失缓冲区中数据的风险。

于 2013-11-06T10:01:35.007 回答