我在Web应用程序中使用log4net。我们正在通过Cloud Services(NOT App Services)进行部署。
我的理解是,我将无法访问磁盘上的日志文件(而且,这些文件无论如何都不是持久性的)。
我的读数是使用Blob存储。但是我看不到任何有关如何执行此操作的代码。有一个nuget包https://www.nuget.org/packages/log4net.Appender.Azure,但是文档说它为每个日志条目创建一个文件。
我想要的是RollingLogFile。
我基本上必须创建自己的吗?像这样,拉下log4net源代码并创建我自己的附加程序,该附加程序记录到云存储帐户而不是磁盘上?似乎需要做很多工作,会以为已经有人对该功能进行了编码?
谢谢。
该项目向我们分享了一些示例,这些示例使用AzureBlobAppender或AzureAppendBlobAppender for log4Net将日志条目存储在Azure Blob存储中。
根据代码,我们可以发现AzureBlobAppender将为Azure Blob存储中的每个日志实体创建单独的xml文件,但是AzureAppendBlobAppender将通过调用CloudAppendBlob.AppendBlock方法添加一天中生成的日志存储在一个日志文件中,以追加新的日志数据块到现有Blob的末尾。
如果不想为每个日志条目创建xml文件,则可以尝试使用AzureAppendBlobAppender。
private static string Filename(string directoryName){
return string.Format("**{0}/{1}.entry.log.xml**",
directoryName,
DateTime.Today.ToString("yyyy_MM_dd",
DateTimeFormatInfo.InvariantInfo));
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句