2008-10-13 5 views

Antwort

6

Nun, das ist lustig, ich schreibe jetzt meine eigene Antwort.

Was ich tat, war der Quellcode von entlib.

Innerhalb Microsoft.Practices.EnterpriseLibrary.Logging und Microsoft.Practices.EnterpriseLibrary.Logging.TraceListenerData

fand ich die Klassen, die ich brauchte.

  • Kopieren EmailMessage.cs zu EmailMessageHTML.cs
  • Kopieren EmailTraceListener.cs zu EmailHTMLTraceListener.cs
  • Kopieren EmailTraceListenerData.cs zu EmailHTMLTraceListenerData.cs

diese Klassen in Ihrer eigenen neuen Bibliothek Put Projekt.

Innerhalb EmailMessageHTML alle Konstrukteure ändern, um die neuen Klassennamen übereinstimmen und als ADD zu dem Verfahren folgende Zeile:

protected MailMessage CreateMailMessage() 
      { 
       ..... 

       message.IsBodyHtml = true; 
       ..... 

       return message; 
      } 

Danach musste ich nutzen diese neue EmailMessageHTML Klasse in EmailHTMLTraceListener (ändern Emailmessage zu EmailMessageHTML) und Verwenden Sie auch diesen EmailHTMLTraceListener in der neuen EmailHTMLTraceListenerData.cs-Datei.

dieses neue Projekt zusammenstellen und als dies in der Config verwenden, wie (Beispiel) dies zu protokollieren natürlich

<loggingConfiguration 
name="Logging Application Block" 
tracingEnabled="true" 
defaultCategory="" 
logWarningsWhenNoCategoriesMatch="true"> 
    <listeners> 
     <add toAddress="[email protected]"   
     fromAddress="[email protected]" 
     subjectLineStarter="" 
     subjectLineEnder="My HTMLemailLogger" 
     smtpServer="localhost" smtpPort="25" 
     formatter="Text Formatter"       
     listenerDataType="MYLibrary.HTMLEmailLogger.EmailHTMLTraceListenerData, 
     MYLibrary.HTMLEmailLogger, Version=2.0.0.0, 
     Culture=neutral, 
     PublicKeyToken=null" 
     traceOutputOptions="None" 
     type="MYLibrary.HTMLEmailLogger.EmailHTMLTraceListener, 
     MYLibrary.HTMLEmailLogger, 
     Version=2.0.0.0, 
     Culture=neutral, 
     PublicKeyToken=null" 
     name="EmailHTML TraceListener"/> 
    </listeners> 
</loggingConfiguration> 

und fügen Sie eine gültige Kategorie folgt: Sie

<add switchValue="All" name="OutOfBalanceBooking"> 
    <listeners> 
     <add name="Database Trace Listener"/> 
     <add name="EmailHTML TraceListener"/> 
    </listeners> 
</add> 

Natürlich brauchen etwas HTML-Dokument, um mit EntLib zu loggen. Ich überlasse das als Übung für den Leser. Und tatsächlich! Ich bekomme jetzt eine nette HTML-E-Mail für jede Out-of-Balance-Buchung, die Kunden auf der Website machen ...

+1

Tolle Arbeit Hace. Nahm deine Arbeit oben als Beispiel und ging genau das umgesetzt. schrieb die Schritte hier auf. http://trycatch.me/implementing-html-formatted-emails-in-the-enterprise-library-logging-block/ –

+0

@EoinCampbell http://trycatch.me/implementing-html-formatted-emails-in-the -enterprise-library-logging-block/nicht gefunden –

Verwandte Themen