一旦 log4net RollingFileAppender
关闭一个文件,如何将它压缩为 zip
(并给它一个密码)?
如果需要自定义 appender
,哪个虚方法可以处理这个?
最佳答案
由于 .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");
}
关于c# - 压缩 Log4net 输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17715373/