我有一个工作log4net的解决方案,它使用Windsor Castle IOC框架在我的应用程序中实例化。它有效,接受一个案例!
我的架构:
CoreLib
ILogger
Logger
WebLib
web.config (log4net settings)
MailServiceLib
MailService
违规代码(在WebLib中):
MailService.Ctor() { _log = IoC.Resolve<ILogger>(); }
MailService.Send(...)
...
_log.Info("this always works..");
Parallel.ForEach(to, po, address => {
_log.Info("BAP!!");
_log.Info("KAPOW!!"); // <-- this works on first loop, but exists the process sometime after with no exceptions being caught or errors logged anywhere
...
client.Send(msg);
在循环中添加_log.info,将进程崩溃到某个地方(在发送时我认为)。并没有抓住例外。
我还启用了log4net诊断(内部调试),但除了通常的启动之外,没有任何内容写入。
更新
累了锁定它,但到目前为止没有改变行为。
lock (_logLock) {
_log.Info("sent");
}