2010-02-09 12 views
13

Sto utilizzando log4net per l'invio di posta quando si verifica un errore di app. Ho configurato il log4net ma mail non è recd. Di seguito è la configurazione:Log4net - l'appatore smtp non funziona

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> 
     <to value="[email protected]"/> 
     <from value="[email protected]"/> 
     <subject value="ERROR | MRM Application"/> 
     <smtpHost value="relaymail.sapient.com"/> 
     <bufferSize value="512"/> 
     <lossy value="true"/> 
     <evaluator type="log4net.Core.LevelEvaluator"> 
      <threshold value="ALL"/> 
     </evaluator> 
     <layout type="log4net.Layout.PatternLayout,log4net"> 
      <conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline"/> 
     </layout> 
    </appender> 

C'è qualche altro cambiamento che deve essere fatto?

+0

si prega di inviare il resto della tua log4net.config e come lo stai inizializzando. –

+0

puoi accedere ad altri appendici? –

+0

se si desidera ricevere e-mail sugli errori, è necessario impostare la soglia su ERROR –

risposta

10

Verificare se è necessaria l'autenticazione SMTP.

Anche bufferSize value = "512" significa che raccoglierà 512 messaggi prima di inviare un'e-mail. Sono abbastanza sicuro che non lo vuoi.

+2

L'ho modificato a 1. Non ho ancora ricevuto posta. C'è qualche altra configurazione che deve essere fatta a parte web.config – Ankit

12

Sembra buono. Per vedere alcuni messaggi di debug log4net nella vostra console aggiungere le seguenti righe nel vostro app.config

<appSettings> 
    <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 

Forse questo vi darà un suggerimento.

+2

Ho trovato questo articolo per essere utile, descrive in modo più dettagliato come fare questo: http://david.gardiner.net.au/2008/11 /log4nets-smtpappender-with-multiple.html –

+0

Se si aggiunge questa impostazione dell'app all'applicazione Web, si noti che log4net utilizza l'infrastruttura di traccia in System.Diagnostics per fornire informazioni di debug. Quindi è necessario assicurarsi di avere impostato la traccia. Dai un'occhiata all'articolo @AaronD collegato a, per vedere un esempio di impostazione della traccia per l'output in un file di testo. –

4
<lossy value="false" /> 

Mi ha aiutato per me

5

ho anche scoperto che l'appender deve essere fatto riferimento nell'elemento radice, come ad esempio:

<root> 
     <level value="INFO"/> 
     <appender-ref ref="LogFileAppender"/> 
     <appender-ref ref="ConsoleAppender"/> 
     <appender-ref ref="SmtpAppender"/>  
    </root> 
    </log4net> 
+0

Questo è stato per me, evviva! –