压缩Log4net输出文件



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

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

由于.NET中的Zip函数不支持密码压缩,因此可以使用类似DotNetZip 的东西

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

更新示例

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

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

这只返回集合中的第一个追加器。因此,如果您有多个appender,那么删除FirstOrDefault(),您将获得所有appender。

然后你应该能够使用DotNetZip:压缩文件

using (var zip = new ZipFile())
{
    zip.Password = "VerySecret!!";
    zip.AddFile(appenderFilePath);
    zip.Save("logs.zip"); 
}

最新更新