# Azure WebApp 日志自动备份到Storage **Repository Path**: gzkeith/webapp-logs-backup ## Basic Information - **Project Name**: Azure WebApp 日志自动备份到Storage - **Description**: Azure WebApp 日志自动备份到Storage - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-10-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu) [![LICENSE](https://img.shields.io/badge/license-Anti%20996-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE) # Azure WebApp 日志自动备份到Storage #### 项目介绍 Azure WebApp比自己租用IIS部署ASP.NET或者ASP.NET CORE程序有很大的优势,包括但不限于自动缩放(当然是要给钱的)、自动缩放无需配置负载均衡、Visual Studio集成好、部署上传速度快、不需要担心IIS环境部署容易出错等问题。 但有一些用户会觉得不太适应,因为Azure WebApp并非一台虚拟机,可以理解为一个类似于Docker容器,主要是给你程序运行资源,而不是给你用于存储的。Azure WebApp连Web访问日志和系统日志都是需要配置到一个Azure Storage Blob存储里面的,所以它的理念是让存储文件更加“分布式”——就是多个WebApp应该都把日志存放在一个集中的Storage里面。 但是这个给传统程序带来一些不方便,使用log4net、nlog等日志写入组件会需要写入磁盘,而Azure Storage不方便挂载到WebApp里面。如果日志写多了,很可能把Azure WebApp写爆。 那么有两种方法,一种是自定义一个log4net、nlog等的日志Appender,让日志写入到Azure Storage Blob存储或者Table存储里面都可以,这部分代码在GitHub上有一些。配置Appender到log4net.config或者nlog.config就可以使用。 但是笔者在自己试过写一个写入Azure Storage Table的日志记录程序之后,发现大部分情况下Azure Storage Table方案显得有点不方便,有一种更简单的适合更小型程序的方式,就是把log4net或者nlog生成的日志文件归档到Azure Storage Blob里面。 详细参见微信公众号: [使用Azure WebJob自动备份日志到Storage,解决WebApp空间不足问题 ](https://mp.weixin.qq.com/s?__biz=MzU5NzU1NDA2Nw==&mid=2247483721&idx=1&sn=897c94fdc917e1444c9d88292ef78a7e&chksm=fe50e7b5c9276ea3eb231601348f2821cbcd91459fa43f2cb034a78a41effb1f05d234e94dab&mpshare=1&scene=23&srcid=1005bKbaORkdCDoQ2y9exQq8#rd)