我一直在尝试从Azure获取IIS日志,而且我能够实现一次 - 现在,无论我尝试什么,我都无法将日志传输到我的存储帐户。
我试图在不重新部署我的代码的情况下这样做,在阅读之后似乎有可能。而且,正如我所提到的,我是成功的。但这让我感到疯狂,它只是不再这样做了。虽然,当我开始转移时,它确实在我的存储帐户中创建了队列,但这似乎就是这样。
我正在做的基本步骤是:
我已经以编程方式完成了上述所有操作,并通过PowerShell的cmdaplet完成了上述所有操作。一旦我开始转移,它就会保持“尚未发布(不要结束/取消)”的状态。
我尝试过Logs,Directories甚至删除并重新创建了我的存储帐户。似乎没有什么工作。当我通过azure门户直接将我的存储帐户信息添加到我的角色配置时,它似乎有效;在它更新部署后,我看到了日志。但这不再适用了。有没有人有一些好的建议/材料?我只想将我的IIS日志传输到我的存储帐户 - 我已经使用了好几天。
更新:*这是我的配置:。我的WebRole.cs在工作时包含以下内容:
DiagnosticMonitor.Start("DiagnosticsConnectionString");
我已将其更新为开始转移:
var diag = new DiagnosticMonitorConfiguration()
{
ConfigurationChangePollInterval = TimeSpan.FromMinutes(1),
Directories = new DirectoriesBufferConfiguration()
{
ScheduledTransferPeriod = TimeSpan.FromMinutes(1)
},
Logs = new BasicLogsBufferConfiguration()
{
ScheduledTransferLogLevelFilter = LogLevel.Verbose,
ScheduledTransferPeriod = TimeSpan.FromMinutes(1)
}
};
DiagnosticMonitor.Start("DiagnosticsConnectionString", diag);
答案 0 :(得分:4)
更改一行:
这
var diag = new DiagnosticMonitorConfiguration()
到
var diag = DiagnosticMonitor.GetDefaultInitialConfiguration()
后记,使用诊断中的现有对象而不添加自己的对象。 这是我的OnStart:
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
config.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Information;
config.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
config.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
DiagnosticMonitor.Start("DiagnosticsConnectionString", config);
答案 1 :(得分:1)
可能是日志没有生成,而不是下载时的问题。
有一个名为AzureLogFetcher的程序可能会有所帮助,可以找到有关登录工作的提示here