11
votes

Configurer ou étendre Log4net Smtpapender avec des sujets personnalisés

Comment puis-je spécifier une mise en page et une conversionPattern pour le sujet des e-mails résultants?

Le tampersize devra être inférieur ou égal à 1, il ne se produira donc pas de tampon.


0 commentaires

4 Réponses :


16
votes

L'article de codeProject log4net NonbufferedsmtpapenderwithsubjectLayout semble prometteur.

En héritant de l'appendend de base requis (SMTPCICKUPDIRAPPENDER dans mon cas) et en ajoutant une propriété ILayout, il est possible de modifier le sujet dans la méthode de l'annexe. P>

<appender name="SmtpPickupDirAppender" type="namespace.for.SmtpSubjectLayoutPickupDirAppender">
    <to value="to@domain.com" />
    <from value="from@domain.com" />
    <subject value="test logging message" />

    <subjectLayout type="log4net.Layout.PatternLayout, log4net">
        <conversionPattern value="Logging message - %message"/>
    </subjectLayout>

    <pickupDir value="C:\SmtpPickup" />
    <bufferSize value="1" />
    <lossy value="true" />
    <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="WARN"/>
    </evaluator>
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
    </layout>
</appender>


2 commentaires

Pour les propriétés personnalisées: ThreadContext.Properties ["Myval"] = "Peu importe";


Public ILayout SoumetLayout doit être Modèle publicLayout SoumetLayout Pour que cela fonctionne.



1
votes

Voici Un autre exemple de Smtpapender avec des sujets personnalisés.


0 commentaires

1
votes

Vous pouvez le télécharger depuis Nuget

code source et exemple


0 commentaires

0
votes

Parce que les réponses précédentes qui suggèrent à l'aide de la version Nuget de SmtpAppenderwithSubjectLayout ont besoin de log4net version> 1.2.1, j'ai utilisé le code source Nuget mais j'ai modifié pour utiliser le log4net 1.2.1 xxx


0 commentaires