serilog / serilog-settings-configuration

A Serilog configuration provider that reads from Microsoft.Extensions.Configuration
Apache License 2.0
446 stars 129 forks source link

Sublogger filter not working. #78

Closed VictorioBerra closed 6 years ago

VictorioBerra commented 6 years ago

I am trying to use Syslog sink wrapped in an Async sink. I found another issue showing that filters can be put inside configureLoggerbut this is not working for me,

    // SysLog
    "WriteTo:SyslogSubLogger": {
      "Name": "Logger",
      "Args": {
        "configureLogger": {
          "WriteTo:Async": {
            "Name": "Async",
            "Args": {
              "configure": [
                {
                  "Name": "Syslog",
                  "Args": {
                    "server": "localhost",
                    "port": 514,
                    "application": "WashuIdentityServer"
                  }
                }
              ]
            }
          },
          "Filter": [
            {
              "Name": "ByIncludingOnly",
              "Args": {
                "expression": "StartsWith(@Properties['SourceContext'] , 'IdentityServer4.Services.DefaultEventSink')"
              }
            }
          ]
        }
      }
    }

thank you

skomis-mm commented 6 years ago

@VictorioBerra this should work as you expected (I just checked the sample). What version of the package do you use?

VictorioBerra commented 6 years ago

@skomis-mm

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Serilog.AspNetCore" Version="2.1.1-dev-00021" />
    <PackageReference Include="Serilog.Settings.Configuration" Version="2.4.1-dev-00070" />
    <PackageReference Include="Serilog.Sinks.Async" Version="1.2.0-dev-00018" />
    <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
    <PackageReference Include="Serilog.Sinks.Email" Version="2.3.0" />
    <PackageReference Include="Serilog.Sinks.Literate" Version="3.0.1-dev-00044" />
    <PackageReference Include="Serilog.Sinks.SyslogServer" Version="1.0.9" />
  </ItemGroup>

   ....redacted.....

</Project>
skomis-mm commented 6 years ago

@VictorioBerra ok, expression engine for filters is in the separate package. Try add this:

<PackageReference Include="Serilog.Filters.Expressions" Version="1.1.0" />
VictorioBerra commented 6 years ago

That worked. Thanks!