log4net - Change subject of SmtpAppender programmatically -


i have smtpappender this:

<appender name="smtpappender" type="log4net.appender.smtpappender">     <to value="myemail@example.org" />     <from value="senderemail@example.org" />     <subject type="log4net.util.patternstring" value="this subject" />     <smtphost value="smtp.host.value" />     <authentication value="basic" />     <port value="587" />     <username value="username" />     <password value="password" />     <buffersize value="1" />     <enablessl value="true"/>     <lossy value="false" />     <threshold value="error" />     <layout type="log4net.layout.patternlayout">         <conversionpattern value="%date [%3thread] %-5level [%class].[%method] - %message%newline" />     </layout> </appender> 

i change subject of log mail in code string specify suits needs better standard subject.

right achieve this. first, find smtpappender name:

public static iappender findappenderbyname(string name) {     iloggerrepository rootrep = logmanager.getrepository();     foreach (iappender iapp in rootrep.getappenders()) {         if (string.compare(name, iapp.name, true) == 0) {             return iapp;         }     }     return null; } 

and can change subject this:

iappender appender = findappenderbyname("smtpappender"); smtpappender smtpappender = (smtpappender)appender; smtpappender.subject = "an error occured trying convert values"; log.error("error message"); 

but seems bit complicated since every time send error mail first have find appender name , don't want use global iappender object seems bad practice me.

is there way use user specified error message subject or there extension method use?


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -