2

一旦log4net RollingFileAppender关闭一个文件,它如何被压缩zip(并给它一个密码)?

如果appender需要自定义,哪个虚拟方法可以处理这个?

4

1 回答 1

0

由于 .NET 中的 Zip 功能不支持密码压缩,因此您可以使用类似DotNetZip

看看这个答案: https ://stackoverflow.com/a/1643348/958701

更新了示例

您可以通过执行以下操作获取日志文件路径:

appenderFilePath = ((Hierarchy)LogManager.GetRepository()).Root.Appenders.OfType<RollingFileAppender>().FirstOrDefault();

这仅返回集合中的第一个附加程序。因此,如果您有多个附加程序,则删除该附加程序,FirstOrDefault()您将获得所有附加程序。

然后你应该可以使用 DotNetZip 压缩文件:

using (var zip = new ZipFile())
{
    zip.Password = "VerySecret!!";
    zip.AddFile(appenderFilePath);
    zip.Save("logs.zip"); 
}
于 2013-07-18T06:09:43.373 回答