Azure:如何在不覆盖旧文件的情况下同步日志文件?

时间:2013-08-27 06:33:35

标签: asp.net-mvc-4 azure log4net azure-storage-blobs

我有一个关于将日志文件同步到blob存储的问题。实际上,我可以将日志文件同步到blob存储,但在此之后,当我将项目新部署到azure时,我的项目文件正在更改,日志文件的内容也会发生变化,尽管文件名保持不变。因此,WebRole正在尝试同步日志文件并执行此操作,但是由于文件名,文件被覆盖并且blob存储中的所有数据都已消失。如何保存不同部署的日志文件?我希望我能解释你,对不起我的英语。

1 个答案:

答案 0 :(得分:0)

您可以在使用之前更改fileName。通过覆盖File属性,您可以向文件名添加任何唯一的前缀(DeploymentID,TimeTicks,GUID ...)。

   public class AzureLocalStorageAppender:RollingFileAppender
        {
            public override string File
            {
                get
                {
                    //Trace.WriteLine("get_"+base.File);
                    return base.File;
                }
                set
                {
                    base.File = RoleEnvironment.GetLocalResource("LocalResourceNameHere").RootPath + @"\"
                        + "_" + Guid.NewGuid().ToString()
                        + new FileInfo(value).Name;
                    //Trace.WriteLine(base.File);
                }
            }
}