对于Nlog,如果我有两个错误级别的电子邮件类型配置,那么在使用logger.Error(“ xxx”)时如何选择指定的电子邮件配置?

时间:2019-05-30 12:05:47

标签: c# nlog

我的程序中有两种类型的错误,当_logger.Error(“ xxx”)时,我想将电子邮件发送到A(在nlog.config中配置)的第一种错误类型,第二种我想发送电子邮件的错误类型B,怎么办?

CREATE TABLE `products` (
  `id` int(10) NOT NULL,
  `name` varchar(250) NOT NULL,
  `code` varchar(100) NOT NULL,
  `price` double(9,2) NOT NULL,
  `image` varchar(250) NOT NULL,
  `stock` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

1 个答案:

答案 0 :(得分:1)

您将引入两个规则,其中name属性设置为不会在其他任何地方显示的记录器名称。我们通常使用GetCurrentClassLogger创建记录器,因此它们以创建它们的类命名。因此,您将这两个命名为某个项目中不可能的类。然后为他们设置final="true"

<rules>
   <logger name="MailerA" minlevel="Info" writeTo="A" final="true" />
   <logger name="MailerB" minlevel="Info" writeTo="B" final="true" />
   <logger name="*" minlevel="Info" writeTo="logFile" /> <!-- if you have it -->
</rules>

然后在代码中创建具有指定名称的记录器,并在要将电子邮件发送到指定目标时使用它们:

Logger mailerA = LogManager.GetLogger("MailerA");
Logger mailerB = LogManager.GetLogger("MailerB");

mailerA.Error("xxx");
mailerB.Error("yyy");