c# - 压缩 Log4net 输出文件

标签 c# io log4net

一旦 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/

相关文章:

io - 如何将字节推送到 Go 中的读取器中?

c# - log4net 覆盖 xml 配置?

c# - 如何在asp.net中设计多个字段的搜索

c# - 如何使用 webRequest 从 C# Windows 表单将文件上传到 Node.js 服务器(使用强大)?

java - 通过来自外部文件java的二维数组操作字符串和整数

.NET 引用 "Copy Local"根据 GAC 的内容设置 True/False

logging - NLog 是否具有与 log4net 的 ILoggerRepository 等效的概念?

c# - 在多个显示器上获取光标位置?

c# - 在处理对连接字符串的多个引用时,部署 .net Web 应用程序是否总是如此痛苦?

java - 最佳实践 : catching failure points in java.net.URL