Log4Net SmtpAppender pour WebEmail - Pas d'Envoi

Je vais essayer d'obtenir Log4Net web e-mail, Yahoo ou Gmail. Si vous avez ce travail, j'apprécierais un peu d'aide, et merci d'avance.

J'ai une racine par défaut, l'enregistreur, avec un RollingFileAppender et un SmtpAppender.
Le fichier appender fonctionne bien. Le SmtpAppender me donne rien.

Je suis l'appel de l'enregistreur de données de diagnostic, cliquez sur le bouton...

protected void btnReloadContractConfig_Click(object sender, EventArgs e)
{
    //DIAGNOSTIC - Test email logger
    log4net.ILog logger = log4net.LogManager.GetLogger("root");
    logger.Error("btnReloadContractConfig_Click() - This is a TEST of delivery of error messages via email, triggered from the Admin.aspx.cs code file.");
}

...et la RollingFileAppender est de faire passer le message...

LOC=20120921-12:03:16.319,UTC=20120921-11:03:16.319,DELTA=10078,THR=6,ERREUR,JOURNAL=racine[(null)] - btnReloadContractConfig_Click() - Ceci est un TEST de livraison de messages d'erreur par e-mail, déclenché à partir de l'Admin.aspx.cs fichier de code.

Le web.config entrées pour Log4Net êtes ici::

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


  <log4net 
    xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="SmtpAppender" />
    </root>

    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="MiniMkt01Log.txt"/>
      <!-- <file value="${TMP}\log-file.txt" /> -->
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout" >
    <header value="[Header]&#13;&#10;" />
    <conversionPattern value="LOC=%date{yyyyMMdd-HH:mm:ss.fff},UTC=%utcdate{yyyyMMdd-HH:mm:ss.fff},DELTA=%timestamp,THR=%thread,%-5level,LOG=%logger,[%property{NDC}] - %message%newline" />
      </layout>  
    </appender>

    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="[email protected]" />
      <from value="[email protected]" />
      <subject value="Logging Message" />
      <smtpHost value="smtp.yahoo.com" />
      <port value="25"/>
      <authentication value="Basic" />
      <username value="[email protected]"/>
      <password value="?????[real password hidden for obvious reasons]"/>
      <!-- <EnableSsl value="true" /> -->
      <bufferSize value="10" />
      <lossy value="true" />
      <evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="WARN"/>
      </evaluator>
      <layout type="log4net.Layout.PatternLayout">
    <header value="[Header]&#13;&#10;" />
    <!-- Previously... <conversionPattern value="%newline%date,%utcdate,%timestamp,[%thread],%-5level,%logger,[%property{NDC}] - %message%newline%newline%newline" /> -->
    <conversionPattern value="%newlineLOC=%date{yyyyMMdd-HH:mm:ss.fff},UTC=%utcdate{yyyyMMdd-HH:mm:ss.fff},DELTA=%timestamp,THR=%thread,%-5level,LOG=%logger,[%property{NDC}] - %message%newline%newline%newline" />
      </layout>
    </appender>

  </log4net>

Le web.config est récupéré dans le monde.asax fichier, dans le Application_Start() gestionnaire...

void Application_Start(object sender, EventArgs e) 
{
    //Start Log4Net, signal app has started
    log4net.Config.XmlConfigurator.Configure();
    log4net.ILog logger = log4net.LogManager.GetLogger("root");
    logger.Info("Application_Start()");
}

L'admin de la page web qui déclenche l'e-mail tentative semble accrocher soit indéfiniment, ou de se suspendre momentanément (une demi seconde) et continuer.
L'environnement de dev ne s'écroule pas avec une exception, c'est d'accrocher ou de glisser sur sans erreur.

  • Comment puis-je obtenir plus de diagnostics de la SmtpAppender?
  • Puis-je tester de façon indépendante le port/config pour vérifier un bloc local sur le programmatique e-mail?
  • Est un log4net email garanti d'être envoyé? Les pertes de et bufferSize propriétés
    semblent très sensibles, si je le mets avec perte=faux, j'obtiens une durée indéterminée accrocher...

Pour référence, je suis avec VS 2010, ASP.Net4, et beaucoup de caféine. Merci encore pour toutes les prochaines aider.

OriginalL'auteur Steve Hibbert | 2012-09-21