Я использовал sdk.
, например:
using SevenZip.Compression.LZMA;
private static void CompressFileLZMA(string inFile, string outFile)
{
SevenZip.Compression.LZMA.Encoder coder = new SevenZip.Compression.LZMA.Encoder();
using (FileStream input = new FileStream(inFile, FileMode.Open))
{
using (FileStream output = new FileStream(outFile, FileMode.Create))
{
coder.Code(input, output, -1, -1, null);
output.Flush();
}
}
}
Вы, безусловно, можете разработать такой фильтр самостоятельно, создав подкласс FilterSkeleton .
Но вместо того, чтобы создавать специализированный фильтр, подобный этому, я предлагаю вам лучше реализовать более общий фильтр, который можно настроить так, чтобы он содержал набор фильтров и применял к ним Оператор. Конфигурация может выглядеть примерно так:
<filter type="CompositeFilter">
<operator value="Or" />
<filters>
<filter type="log4net.Filter.PropertyFilter">
<stringToMatch value="value1" />
</filter>
<filter type="log4net.Filter.PropertyFilter">
<stringToMatch value="value2" />
</filter>
</filters>
</filter>
Если вы создадите такой фильтр, я рекомендую вам отправить его в проект log4net. Это было бы непременно полезно для широкой публики :)