一旦log4net RollingFileAppender
关闭文件,如何将其压缩到zip
(并给它一个密码)?
如果需要自定义appender
,哪种虚拟方法可以处理此问题?
答案 0 :(得分:0)
由于.NET中的Zip功能不支持密码压缩,因此您可以使用类似DotNetZip
的内容看看这个答案: https://stackoverflow.com/a/1643348/958701
更新了示例
您可以通过执行以下操作来获取日志文件路径:
appenderFilePath = ((Hierarchy)LogManager.GetRepository()).Root.Appenders.OfType<RollingFileAppender>().FirstOrDefault();
这只返回集合中的第一个appender。因此,如果您有多个appender,请删除FirstOrDefault()
,然后您将获得所有的appender。
然后你应该能够使用DotNetZip压缩文件:
using (var zip = new ZipFile())
{
zip.Password = "VerySecret!!";
zip.AddFile(appenderFilePath);
zip.Save("logs.zip");
}