gpt4 book ai didi

c# - Azure 存储分析日志解析错误

转载 作者:行者123 更新时间:2023-12-03 03:15:50 25 4
gpt4 key购买 nike

使用 WindowsAzure.Storage 时出现解析异常访问存储分析日志。

这是我用于检索日志记录的代码:

var recordList = this.SourceAnalyticsClient.ListLogRecords(
this.Service, this.StartTime, null, this.Configuration.BlobRequestOptions,
this.CreateOperationContext())
.ToList();

该代码引发以下异常:

Error parsing log record: could not parse 'Wednesday, 03-Dec-14 08:59:27 GMT' using format: dddd, dd-MMM-yy HH:mm:ss 'GMT' (type InvalidOperationException)
Exception stack trace:
at Microsoft.WindowsAzure.Storage.Analytics.LogRecordStreamReader.ReadDateTimeOffset(String format)
at Microsoft.WindowsAzure.Storage.Analytics.LogRecord.PopulateVersion1Log(LogRecordStreamReader reader)
at Microsoft.WindowsAzure.Storage.Analytics.LogRecord..ctor(LogRecordStreamReader reader)

我猜发生这种情况是因为我的线程没有使用英语文化。

我需要一种方法来解决此问题或解决方法。

最佳答案

经过一番投入后,我发现 LogRecordStreamReader.ReadDateTimeOffset 正在为 DateTimeOffset.TryParseExact 指定一个 null 格式提供程序参数。这意味着将使用线程的当前区域性 - 这对于使用非英语区域性的线程不起作用。

可能的解决方法是:

// Remember current culture setting
CultureInfo originalThreadCulture = Thread.CurrentThread.CurrentCulture;

try
{
// Assign the invariant culture temporarily
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

// Let WindowsAzure.Storage parse log records
recordList = this.SourceAnalyticsClient.ListLogRecords(
this.Service, this.StartTime, null, this.Configuration.BlobRequestOptions,
this.CreateOperationContext())
.ToList();
}
finally
{
// Restore original culture setting
Thread.CurrentThread.CurrentCulture = originalThreadCulture;
}

我还创建了一个 pull request with a suggested fix .

关于c# - Azure 存储分析日志解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27268777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com