【问题标题】:Log4Net Multiple ProjectsLog4Net 多个项目
【发布时间】:2013-01-11 23:16:05
【问题描述】:

我在我们的一个解决方案中使用 log4net。该解决方案包含多个项目,每个项目都是 Unit-Test 项目。我正在使用this post 中描述的方法将日志记录添加到各个项目中。

我正在使用滚动文件附加程序将所有测试记录到单个日志文件中,该文件根据大小滚动。

我的每个项目都成功记录到日志文件中,但是,如果我从多个项目运行测试(多个测试程序集),我只能看到来自第一个程序集的日志记录。

例如,如果我从 Project_AProject_B 运行测试,我只能看到来自 Project_A 的日志语句(假设 Project_A's 测试在测试运行中首先运行)

我已经检查过的事情:

  • 我已将配置文件作为链接包含在每个项目中

  • 我已将 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 添加到每个项目的程序集文件中。

  • 我已经分别测试了每个项目,以确保它们在自己运行时成功登录。

【问题讨论】:

  • 为什么要从单元测试中记录?你能在日志代码和配置部分添加你目前拥有的内容吗?
  • 您是否在<appender> 配置中使用<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
  • @RyanGates:这些是编码的 UI 测试,日志记录是弥合自动化和手动测试之间差距的一部分。
  • @madth3:不,我不是,我不知道我需要添加它。我应该补充一下,我没有收到任何错误说 log4net 无法获得锁,所以我认为这不是问题。
  • 顶...有人有什么想法吗?

标签: c# visual-studio-2010 log4net mstest log4net-configuration


【解决方案1】:

解决了这个问题,并认为我会向处于同样困境的其他人报告。

每个项目的链接配置文件的属性需要从 Copy Never 更改为 Copy If Newer。进行此更改后,所有项目都按预期记录到同一文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多