次のようにlog4netを構成しました
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<!-- Edit to change your filename here -->
<file value="Logs\\rolling.log" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<rollingStyle value="Date" />
<datePattern value=".yyyy-MM-dd'.log'" />
<maximumFileSize value="10MB" />
<!-- %identity used for ASP.NET app, %username used for windows app. You can leave them as is or remove one of them accordingly -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{dd MMM yyyy HH:mm:ss fff}] [%5level] (%identity-%username) %message%newline" />
</layout>
</appender>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="***" />
<from value="***" />
<subject value="****" />
<smtpHost value="localhost" />
<bufferSize value="1" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="ERROR"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{dd MMM yyyy HH:mm:ss fff}] [%5level] (%identity-%username) %message%newline" />
</layout>
</appender>
<root>
<!-- Edit to change level of logging here, under normal conditions this should be set to INFO, use DEBUG level for verbose logging -->
<level value="INFO" />
<appender-ref ref="RollingFile" />
<appender-ref ref="SmtpAppender" />
</root>
ローリング ファイル アペンダは正常に動作しますが、SMTP アペンダは次のエラーで失敗します
System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions [::1]:25
私が奇妙だと思うのは、エラーの最後の角括弧に構成からの SMTP ホストが含まれていないことです。私はそこに会うことを期待していましlocalhost
た。
これをローカル マシンの smtp4dev に対して実行しています。
ありがとうございました!