【问题标题】:Log4Net + Send Email when done?Log4Net + 完成后发送电子邮件?
【发布时间】:2010-10-30 23:43:44
【问题描述】:

我刚刚开始使用 Log4Net... 我现在想发送一封电子邮件,其中包含完整的日志,可以附加在邮件中,也可以直接在邮件中。使用 SmtpAppender 的问题在于它需要一个未知的 bufferSize,因为它应该发送邮件,无论它是充满错误还是只是信息。

更新:我的配置文件

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">

    <to value="ebb@mail.com" />
    <from value="ebb@mail.com" />
    <subject value="Backup Application - Log" />
    <smtpHost value="mailserver" />
    <authentication value="1" />
    <username value="userName" />
    <password value="mypw" />

    <port value ="25"/>
    <lossy value="true" />
    <bufferSize value="500" />

    <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="ALL"/>
    </evaluator>

    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%timestamp [%thread] %-5level %logger – %message%newline" />
    </layout>

</appender>

【问题讨论】:

    标签: log4net


    【解决方案1】:

    BufferSize 等于必须缓冲的日志消息的数量(即,如果您设置为 512,则在收集到 512 条消息后将发送邮件)。

    我认为将其设置为 int.MaxValue(即 2.147.483.647)是一个合理的选择。 20 亿条消息对于一个系统来说太多了,即使是长时间运行。

    如果你给我 10 分钟,我会(从源代码)向你确认,如果你clean停止你的应用程序,那么到目前为止收集的所有日志都将被发送

    [更新]:确认!!析构函数按预期刷新队列

    [添加] 我会同时删除有损和评估者。您的问题很清楚:评估器优先于缓冲区:) :)

    评估器用于在满足特定条件时刷新队列。您的条件等于true。触发此条件时,将发送电子邮件,因此这就是在每次日志调用时发送邮件的原因。

    这与仅发送信息和错误消息略有不同,后者通过日志过滤实现。

    删除这两个属性,您的代码将正常工作。设置 int.MaxValue 将允许您存储最大可能数量的消息。应用程序在一次运行中收集超过 20 亿个错误/信息的可能性不大(您最好像今晚某些人那样赢得 Superenalotto 的 1.78 亿欧元大奖,或者被彗星击中)。

    【讨论】:

    • 我认为这就是问题所在。我没有“清理”停止我的应用程序(不知道怎么做?)
    • 如果您的应用程序崩溃,您可能会丢失消息。这是一般日志记录中非常常见的问题,因此您应该始终避免在有故障的应用程序中缓冲消息。顺便说一句,“干净”的停止是没有未处理异常的停止。如果您尝试捕获您的主要方法,那么当您捕获错误时,它将是一个干净的停止
    • 我正在使用 try-catch。但问题是我仍然希望通过邮件发送日志,无论它是充满错误还是只是信息。
    • 那么设置缓冲区大小为2.147.483.647应该可以吗? - 我已经尝试过使用高缓冲区大小,但它似乎停留在“1”。我不断收到一封邮件,每个 info/warn/fatal/error.info/warn/fatal/errors。
    • 我都尝试过使用 BufferSize、bufferSize 和 Buffersize...没有运气。
    猜你喜欢
    • 2015-01-08
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    相关资源
    最近更新 更多