2010-02-09 3 views
13

J'utilise log4net pour envoyer des mails quand une erreur d'application se produit. J'ai configuré le log4net mais le courrier n'est pas recd. Voici la configuration:Log4net - smtp appender ne fonctionne pas

<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> 

D'autres modifications doivent-elles être apportées?

+0

s'il vous plaît publier le reste de votre log4net.config et comment vous l'initialisez. –

+0

pouvez-vous vous connecter à d'autres appenders? –

+0

si vous voulez obtenir des courriels sur les erreurs, vous devez définir le seuil à ERREUR –

Répondre

10

Vérifiez si vous avez besoin d'une authentification SMTP.

Aussi bufferSize value = "512" signifie qu'il va collecter 512 messages avant d'envoyer un email. Je suis sûr que tu ne le veux pas.

+2

Je l'ai modifié à 1. toujours pas de mails. Y at-il une autre configuration qui doit être fait en dehors de web.config – Ankit

12

Ça a l'air bien. Pour voir des messages de débogage log4net dans votre console ajouter les lignes suivantes dans votre app.config

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

Peut-être cela vous donnera un indice.

+2

J'ai trouvé cet article utile, il décrit plus en détail comment faire ceci: http://david.gardiner.net.au/2008/11 /log4nets-smtpappender-with-multiple.html –

+0

Si vous ajoutez ce paramètre d'application à votre application Web, notez que log4net utilise l'infrastructure de traçage dans System.Diagnostics pour afficher les informations de débogage. Donc, vous devez vous assurer que vous avez mis en place le suivi. Jetez un oeil à l'article @AaronD lié à, pour voir un exemple de mise en place de traçage à la sortie d'un fichier texte. –

4
<lossy value="false" /> 

il a aidé pour moi

5

J'ai aussi découvert que le appender doit être référencée dans l'élément racine comme tel:

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

C'était tout pour moi, bravo! –

Questions connexes