Это возможно, до некоторой степени, чтобы получить динамический получателя.
В приложении SMTP заменяются команды To, CC, From и т. Д. Во время настройки. Не идеально (было бы лучше, если бы было вычислять значения при каждой отправке), но все же работоспособно.
Повторная настройка ведения журнала не является бесплатной, но выполнима программно. Вы можете настроить поле Кому, как, например:
<to type="log4net.Util.PatternString" value="[email protected]%property{MailRecipient}" />
затем в своем коде вы можете задать через запятую список получателей, как это:
log4net.GlobalContext.Properties["MailRecipient"] = "[email protected],[email protected]";
важный бит, что вы вынуждаете повторную конфигурацию ПОСЛЕ того, как вы установите эти значения. Точный синтаксис будет зависеть от вашей стратегии конфигурации, мы используем центральный конфигурационный файл для всех лесозаготовок так в C# это будет выглядеть следующим образом:
log4net.Config.XmlConfigurator.ConfigureAndWatch("PathToYourCentralFile.xml");
и вуаля! Динамический получатель без каких-либо пользовательских приложений!
Лично я бы предпочел пользовательский appender, менее хакерский, поскольку он не требует постоянной переконфигурации, если вам нужно часто менять их.Но если вам нужно только 10-минутное исправление, и конфиг для получателя не меняется после запуска, я нашел это достаточно хорошим.
Вы можете преобразовать ответ @ samy в VB.Net по адресу http://www.developerfusion.com/tools/convert/csharp-to-vb/ – stuartd