gpt4 book ai didi

Log4Net + 完成后发送电子邮件?

转载 作者:行者123 更新时间:2023-12-02 08:12:27 27 4
gpt4 key购买 nike

我刚刚开始使用 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>

最佳答案

BufferSize 等于必须缓冲的日志消息数(即,如果设置为 512,则一旦收集到 512 条消息,就会发送邮件)。

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

如果您给我 10 分钟的时间,我将向您确认(从源代码),如果您干净停止您的应用程序,则将发送迄今为止收集的所有日志

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

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

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

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

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

关于Log4Net + 完成后发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com