获得;BlockCountExceedsLimit“;使用log4net.Appender.azureAppendBlobaPender时发生异常

获得;BlockCountExceedsLimit“;使用log4net.Appender.azureAppendBlobaPender时发生异常,log4net,azure-web-app-service,Log4net,Azure Web App Service,我正在使用log4net.Appender.azureappendblobapender记录我的web应用程序的信息和错误。有时我会遇到“BlockCountExceedsLimit”例外。这是因为append blob只接受50000个块提交,之后它通过异常(冲突(409))提交。我检查了代码,发现它等待512个日志事件,并将每个日志条目分别刷新到append blob中。因此,我们一天只能记录50000个日志条目 有人能帮我吗?有人知道这方面的替代方案吗 谢谢, Karthik根据您的描述,

我正在使用
log4net.Appender.azureappendblobapender
记录我的web应用程序的信息和错误。有时我会遇到“BlockCountExceedsLimit”例外。这是因为append blob只接受50000个块提交,之后它通过异常(冲突(409))提交。我检查了代码,发现它等待512个日志事件,并将每个日志条目分别刷新到append blob中。因此,我们一天只能记录50000个日志条目

有人能帮我吗?有人知道这方面的替代方案吗

谢谢,
Karthik

根据您的描述,我假设您使用的是nuget软件包。如下图所示:

据我所知,您可以按照我的理解编写自定义的
azureappendblobapender
,并调整
Filename
SendBuffer
方法以满足您的要求

我正在使用log4net.Appender.azureAppendBlobaPender记录我的web应用的信息和错误

由于您使用azure web app托管您的应用程序,因此可以使用内置的应用程序日志(Blob),azure端将帮助您每小时生成日志。您可以登录Azure Portal,选择web应用程序,启用应用程序日志记录(Blob),将日志记录级别设置为信息,以及您可以遵循的详细信息

对于您的应用程序,您可以使用以下代码记录信息和错误

System.Diagnostics.Trace.TraceError("xxxxx");

System.Diagnostics.Trace.TraceInformation("xxxxx");

我将代码更改为一点点以附加blob,一旦缓冲区达到阈值(512个日志条目),它将在一次提交中刷新日志条目

System.Diagnostics.Trace.TraceError("xxxxx");

System.Diagnostics.Trace.TraceInformation("xxxxx");