首页 文章

Serilog - 在AppSettings中配置多个接收器

提问于
浏览
3

我正在尝试使用应用程序设置包连接serilog,当我运行我的程序时,Serlog抱怨它无法找到RollingFile程序集 . 我没有使用单个水槽这个问题,但多次它给我适合:

<!-- Serilog Configuration -->
<add key="serilog:using:Email" value="Serilog.Sinks.Email" />
<add key="serilog:using:RollingFile" value="Serilog.Sinks.RollingFile" />

<!-- Configure Serilog Email Sink -->
<add key="serilog:write-to:Email"/>
<add key="serilog:write-to:Email.mailServer" value="***" />
<add key="serilog:write-to:Email.toEmail" value="***" />
<add key="serilog:write-to:Email.fromEmail" value="***" />
<add key="serilog:write-to:Email.mailSubject" value="Notification" />
<add key="serilog:write-to:Email.restrictedToMinimumLevel" value="Debug" />

<!-- Configure Serilog RollingFile Sink -->
<add key="serilog:write-to:RollingFile" />
<add key="serilog:write-to:RollingFile.restrictedToMinimumLevel" value="Debug" />
<add key="serilog:write-to:RollingFile.pathFormat" value="C:\Logs\comply360-user-mgmt-{Date}.txt" />
<add key="serilog:write-to:RollingFile.outputTemplate" value="{Timestamp:HH:mm:ss} [{Level}] [{SourceContext}] [{CorrelationId}] {Message}{NewLine}{Exception}" />

2 回答

  • 1

    您必须在web.config和Configuration中使用前缀

    Web.Config

    <!-- Serilog Configuration -->
    <add key="email:serilog:using:Email" value="Serilog.Sinks.Email" />
    <add key="file:serilog:using:RollingFile" value="Serilog.Sinks.RollingFile"     />
    
    <!-- Configure Serilog Email Sink -->
    <add key="email:serilog:write-to:Email"/>
    <add key="email:serilog:write-to:Email.mailServer" value="***" />
    <add key="email:serilog:write-to:Email.toEmail" value="***" />
    <add key="email:serilog:write-to:Email.fromEmail" value="***" />
    <add key="email:serilog:write-to:Email.mailSubject" value="Notification" />
    <add key="email:serilog:write-to:Email.restrictedToMinimumLevel" value="Debug" />
    
    <!-- Configure Serilog RollingFile Sink -->
    <add key="file:serilog:write-to:RollingFile" />
    <add key="file:serilog:write-to:RollingFile.restrictedToMinimumLevel" value="Debug" />
    <add key="file:serilog:write-to:RollingFile.pathFormat" value="C:\Logs\comply360-user-mgmt-{Date}.txt" />
    <add key="file:serilog:write-to:RollingFile.outputTemplate" value="{Timestamp:HH:mm:ss} [{Level}] [{SourceContext}] [{CorrelationId}] {Message}{NewLine}{Exception}" />
    

    Startup.cs

    Log.Logger = new LoggerConfiguration()
                .ReadFrom
                .AppSettings("email")
                .ReadFrom
                .AppSettings("file")
                .CreateLogger()
    
  • 5

    弄清楚了 . 我不得不使用语句删除滚动文件 .

相关问题