ELMAH日志留存、数据上报及表结构自定义相关技术问询
问题1:生产环境默认日志留存规则
ELMAH的默认留存规则和你选择的存储类型直接相关:
- 默认内存存储:仅保留最近15条错误日志,应用池重启、站点部署更新后所有日志会直接清空,仅适合本地调试使用
- 持久化存储(SQL Server、XML文件、Access等):无内置自动清理逻辑,所有捕获到的错误日志会永久留存,需要你手动配置定期清理任务或者在代码中添加过期删除逻辑
问题2:是否会向项目开发者上报数据
不会。ELMAH本身是完全本地化运行的类库,没有内置任何遥测、数据上报逻辑,所有捕获的错误数据只会存储在你本地配置的存储位置(服务器内存、你自行维护的数据库、服务器本地文件),不会向任何第三方服务器传输任何业务或日志数据。
问题3:是否可以自定义修改存储表结构新增字段
支持两种实现方案:
- 无需修改表结构:你可以直接向ELMAH的
Error对象的CustomData、ServerVariables等内置字典字段中写入自定义内容,这些内容会自动序列化存储到默认表的AllXml字段中,查询时直接反序列化即可读取 - 需修改表结构:你可以通过继承
ErrorLog抽象基类,自定义实现自己的存储提供程序,重写Log写入方法和GetError/GetErrors查询方法,即可支持自定义表结构、新增任意自定义字段存储。
内容的提问来源于stack exchange,提问作者Naori Kuni
相关产品推荐
相关产品推荐

