Serilog.Sink.Mail的动态应用程序设置

问题描述

我想使用Serilog.Sinks.Mail,并将其配置设置存储在appsettings json文件中,并且可以为我发送的每封邮件动态更改主题和邮件接收者。我为mailSubject设置了{Message},并由此将日志消息中的第一个单词输入到主题中,但是我想为每封邮件预先定义主题。

示例:在事件A处,将主题为“事件A”的邮件发送到PersonA@something.com。在事件B中,将主题为“事件B”的邮件发送至PersonB@something.com。

是否可以使用Serilog做到这一点,还是应该对邮件使用其他方式?

此刻,我对邮件的设置如下:

  {
    "Name": "Email","Args": {
      "fromEmail": "fromEmail@something.com","toEmail": "testmail@something.com","mailServer": "testmailServer","batchPostingLimit": 1,"mailSubject": "{Message}","outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level}] {Message}{NewLine:1}{Exception:1}"
    }

解决方法

我想不出一种简单的方法。我认为最好的方法是使用C#代码进行配置,而不是通过appsettings.json文件进行配置。

例如,您可以使用Serilog.Sinks.Maphttps://github.com/serilog/serilog-sinks-map)根据触发它的事件来配置其他接收器...

您仍然可以从appsettings.json加载通用stuf,但是您必须自己加载这些设置。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...