Filtering events via ByIncludingOnly
<p>I've got a situation where some log events contain large property values (in this particular case, a large packet of XML).  I want to use Serilog's <code>ByIncludingOnly</code> functionality to use an additional sink for these large data events.  Here's a sample of what I thought would work:</p>

<pre><code>    private static void FilteredLogging()
    {
        Log.Logger = new LoggerConfiguration()
            .WriteTo.Console(new RawFormatter())
            .WriteTo.Logger(lc =&gt; lc.Filter.ByIncludingOnly(LargeDataPackets))
                .WriteTo.File("big.txt")
            .CreateLogger();

        Log.Information("go");
        Log.ForContext("data", "12345").Information("Small packet");
        Log.ForContext("data", "1234567890987654321").Information("Big packet");

        Log.CloseAndFlush();
    }

    private static bool LargeDataPackets(LogEvent le)
    {
        return le.Properties.ContainsKey("data") &amp;&amp;
               le.Properties["data"].ToString().Length &gt; 10;
    }
</code></pre>

<p>However, when I run this code, all three messages go to the "big.txt" file.  I would expect only the last item ("Big packet") to go to the file since it's the only event with a <code>data</code> property that is over 10 characters.</p>

<p>I'm using Serilog 2.0.</p>