【发布时间】:2019-10-09 05:27:49
【问题描述】:
我需要在大型流程执行后发送一封电子邮件,并将日志文件作为附件,以便用户可以识别任何问题。我们使用 log4net 来处理我们所有的日志记录,但我无法让 log4net 释放文件,因此可以将其添加为附件。
到目前为止,我关注了这个问题的结果:How to stop log4net from logging and release the last file about setting the appender threshold to "Off",但由于 DLL 没有释放日志文件,我继续收到异常。我可以在调试器中验证 appender 实际上处于“关闭”状态,但进程资源管理器确认我的 exe 仍然锁定文件。
这是我从链接问题中得到的方法:
private static void SetThreshold(string appenderName, log4net.Core.Level threshold)
{
foreach (log4net.Appender.AppenderSkeleton appender in log4net.LogManager.GetRepository().GetAppenders())
{
if (appender.Name == appenderName)
{
appender.Threshold = threshold;
break;
}
}
}
任何如何强制发布此日志的想法都会非常有帮助。谢谢
【问题讨论】: