压缩Log4net输出文件

时间:2013-07-18 05:43:01

标签: c# io log4net

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

如果需要自定义appender,哪种虚拟方法可以处理此问题?

1 个答案:

答案 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"); 
}