我的程序中有两种类型的错误,当_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;
答案 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");