gpt4 book ai didi

用于 WebEmail 的 Log4Net SmtpAppender - 不发送

转载 作者:行者123 更新时间:2023-12-04 05:40:31 24 4
gpt4 key购买 nike

我正在尝试让 Log4Net 与网络电子邮件(Yahoo 或 Gmail)一起使用。如果你有这个工作,我会很感激一些帮助,并提前致谢。

我有一个默认的根记录器,带有一个 RollingFileAppender 和一个 SmtpAppender。
文件附加程序工作正常。 SmtpAppender 什么也没给我。

我正在通过单击诊断按钮调用记录器...

protected void btnReloadContractConfig_Click(object sender, EventArgs e)
{
// DIAGNOSTIC - Test email logger
log4net.ILog logger = log4net.LogManager.GetLogger("root");
logger.Error("btnReloadContractConfig_Click() - This is a TEST of delivery of error messages via email, triggered from the Admin.aspx.cs code file.");
}

...并且 RollingFileAppender 正在收到消息...

LOC=20120921-12:03:16.319,UTC=20120921-11:03:16.319,DELTA=10078,THR=6,ERROR,LOG=root,[(null)] - btnReloadContractConfig_Click() - 这是交付测试从 Admin.aspx.cs 代码文件通过电子邮件触发的错误消息。

Log4Net 的 web.config 条目在这里:

  <appSettings>
<add key="log4net.Internal.Debug" value="true"/>
<appSettings>


<log4net
xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="SmtpAppender" />
</root>

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="MiniMkt01Log.txt"/>
<!-- <file value="${TMP}\log-file.txt" /> -->
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout" >
<header value="[Header]&#13;&#10;" />
<conversionPattern value="LOC=%date{yyyyMMdd-HH:mm:ss.fff},UTC=%utcdate{yyyyMMdd-HH:mm:ss.fff},DELTA=%timestamp,THR=%thread,%-5level,LOG=%logger,[%property{NDC}] - %message%newline" />
</layout>
</appender>

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="FacelessDevTeam@yahoo.com" />
<from value="hiblet@yahoo.com" />
<subject value="Logging Message" />
<smtpHost value="smtp.yahoo.com" />
<port value="25"/>
<authentication value="Basic" />
<username value="FacelessDevTeam@yahoo.com"/>
<password value="?????[real password hidden for obvious reasons]"/>
<!-- <EnableSsl value="true" /> -->
<bufferSize value="10" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<header value="[Header]&#13;&#10;" />
<!-- Previously... <conversionPattern value="%newline%date,%utcdate,%timestamp,[%thread],%-5level,%logger,[%property{NDC}] - %message%newline%newline%newline" /> -->
<conversionPattern value="%newlineLOC=%date{yyyyMMdd-HH:mm:ss.fff},UTC=%utcdate{yyyyMMdd-HH:mm:ss.fff},DELTA=%timestamp,THR=%thread,%-5level,LOG=%logger,[%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>

</log4net>

web.config 正在 Global.asax 文件中被拾取,在 Application_Start() 处理程序中...

void Application_Start(object sender, EventArgs e) 
{
// Start Log4Net, signal app has started
log4net.Config.XmlConfigurator.Configure();
log4net.ILog logger = log4net.LogManager.GetLogger("root");
logger.Info("Application_Start()");
}

触发电子邮件尝试的管理网页似乎无限期挂起,或暂时挂起(半秒)并继续。
开发环境不会因异常而崩溃,它要么挂起要么滑行而不会出错。
  • 如何从 SmtpAppender 中获得额外的诊断信息?
  • 我可以独立测试端口/配置以检查外发编程电子邮件上的本地块吗?
  • 是否保证发送 log4net 电子邮件?有损和 bufferSize 属性
    看起来很敏感,如果我设置有损=假,我会无限期挂起...

  • 作为引用,我使用 VS 2010、ASP.Net4 和大量咖啡因。再次感谢您即将提供的帮助。

    最佳答案

    好的,想通了,现在正在接收电子邮件。我在互联网上找不到很多解决方案,所以这就是我必须做的。

    我首先设置了一个小型的控制台电子邮件程序来验证我可以从我的机器发送基本的电子邮件。这需要您向配置 SMTP 客户端的 web.config(或本例中的 app.config)添加一个部分。

    当我开始工作时,我可以从独立应用程序发送电子邮件,我将所需的部分复制到我的主项目的 web.config 文件中,并且,hot-diggity-dog,它工作了。在这里,出于对我的人类同胞的纯粹热爱,是 system.net 部分为我工作的 Gmail ......

    <configuration>

    [... your config stuff]

    <system.net>
    <mailSettings>
    <smtp deliveryMethod="Network" from="chunkyLover69@gmail.com">
    <network
    host="smtp.gmail.com"
    enableSsl="true"
    port="587"
    userName="chunkyLover69@gmail.com"
    password="yesThisIsMyRealPasswordIAmAnIdiot"
    defaultCredentials="false"/>
    </smtp>
    </mailSettings>
    </system.net>

    [... some more of your config stuff]

    </configuration>

    所以这是关键,我的 .config 文件中没有 system.net 部分,因此史诗般的失败。希望这可以帮助其他人在 future 。

    关于用于 WebEmail 的 Log4Net SmtpAppender - 不发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12530128/

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