Ответ 1
Вы можете использовать BufferingWrapper для своей целевой адреса электронной почты, чтобы выполнять несколько записей журнала в одном электронном письме. Он поддерживает пакетную обработку в течение определенного промежутка времени (установите flushTimeout
в миллисекундах) и/или для указанного количества записей журнала (установите bufferSize
на количество записей).
Изменить: Оберните свою текущую цель внутри <target type="BufferingWrapper">
следующим образом:
<target xsi:type="BufferingWrapper"
name="MailBuffer"
slidingTimeout="false"
bufferSize="100"
flushTimeout="-1">
<target name="HeelpAdsImport_patrick_email" xsi:type="Mail"
smtpServer="XXXXX"
smtpPort="25"
smtpAuthentication="Basic"
smtpUserName="YYYYYY"
smtpPassword="*ZZZZZZ"
enableSsl="false"
from="DDDDDDDDDD"
to="EEEEEEEEEEE"
layout="${longdate} ${uppercase:${level}} ${callsite:className=true:includeSourcePath=true:methodName=true} ${message}${newline}"
/>
</target>
Изменить 2: Вы вызываете LogManager.Flush() перед выходом из вашей программы?
Изменить 3: Средство рендеринга макета ${newline} должно привести к разрыву строки в вашей электронной почте (в конце layout
выше).