Log4net SmtpAppender配置接收日志块

时间:2012-03-28 08:12:36

标签: winforms log4net rollingfileappender smtpappender evaluator

我想将所有内容保存在日志文件中,并接收每封邮件包含512封邮件的邮件。

RollingFileAppender工作正常。但在电子邮件中,我有时会收到一封邮件,有时会收到4封邮件(不同的邮件)。

我也试过MemoryAppender。在那里,我还有1-2条消息在队列中,仅此而已。

我试过“有损”的SmtpAppender,结果是一样的。我应该改变什么?

我的配置在这里

<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="c:\temp\log-" />
  <bufferSize value="0" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <param name="DatePattern" value="yyyy.MM.dd'.log'" />
  <maxSizeRollBackups value="-1" />
  <maximumFileSize value="10MB" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level - %message%newline" />
  </layout>
</appender>
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <bufferSize value="512" />
  <lossy value="false" />
  <authentication value="Basic" />
  <to value="test@test.com" />
  <from value="test@test.com" />
  <username value="test@test.com" />
  <password value="xxxxx" />
  <subject value="My subject" />
  <smtpHost value="mail.test.com" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level - %message%newline" />
  </layout>
</appender>
<root>
  <level value="ALL" />
  <appender-ref ref="RollingLogFileAppender" />
  <appender-ref ref="SmtpAppender" />
</root>
</log4net>

1 个答案:

答案 0 :(得分:0)

以下appender配置适用于我(我一次收到6条日志消息):

    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
        <to value="name@server.com" />
        <from value="name@server.com" />
        <subject value="Log Email" />
        <smtpHost value="email.test.com" />
        <bufferSize value="5" />
        <lossy value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%property{log4net:HostName} :: %date %level %logger [%thread] - %message%newline" />
        </layout>
    </appender>

您的日志消息可能有多行吗?