構成で SMTP ロガーを次のように構成しました。
<appender name="SmtpEndUserAppender" type="log4net.Appender.SmtpAppender">
<to value="someReciever@sjm.com"/>
<from value="serviceAccount@sjm.com"/>
<subject value="Error occured in the XML Conversion Utility"/>
<smtpHost value="smtp server name"/>
<bufferSize value="1024"/>
<lossy value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{MM-dd-yyyy HH:mm:ss.ff} [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
問題は、メッセージが小さい場合は正常に送信されますが、アペンダーが長すぎるメッセージを見つけた場合、受信トレイにメールを受信せずにコードブロックを通過するだけです。
var log = LogManager.GetLogger(Constants.ENDUSEREMAILLOGGER);
log.Info(string.Format(Constants.EMAILERRORMESSAGETEMPLATE, unprocessedFile, ex.Message));
ex.message は、5000 行以上をループしてすべてのエラーを収集するときに文字列ビルダーを使用するため、非常に長くなることがあります (2000 行など)。
バッファサイズを増やす必要がありますか? なぜこの動作ですか?