从并行操作调用时,log4net崩溃

时间:2014-05-01 22:54:31

标签: c# log4net

我有一个工作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");
}

0 个答案:

没有答案