我正在尝试为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
的最小值。但是它对于开发来说非常不方便,因为我必须等待一段时间后我在日志记录中进行测试。有没有办法减少这个时间?或者我做错了什么?
答案 0 :(得分:3)
不,你没有做错任何事。您可以尝试添加PT10S或类似的东西,但我相信这只会缩短到一分钟。实例上的诊断代理将数据从缓冲区中刷新到存储帐户中,我认为它们不会在不到1分钟的时间间隔内完成。这对于开发或测试来说可能是令人沮丧的,但对于实际生产运行来说,设置这么低的东西会对机器的性能产生重大影响。该系统并非旨在快速提供信息。
由于您使用nlog,因此使用target that writes directly to Windows Azure Table storage是一个选项。然后在进行测试时,您可以查看表中的值。有些人也会这样做,而不是使用日志传输机制。当然,您正在不时地进行单一转移交易,以及可能非常繁琐的交易,因此请确保您考虑影响交易以及在生产中使用此交易的开销。直接进入表存储的一个好处是,如果实例在刷新数据之间发生故障,则不会有丢失缓冲区中数据的风险。