gpt4 book ai didi

unit-testing - NUnit 和 Log4Net 集成 : asserting based on the log

转载 作者:行者123 更新时间:2023-12-02 00:42:40 25 4
gpt4 key购买 nike

这是我关于堆栈溢出的第一个问题。我运气不太好,无法通过 google 或 stackoverflow 找到答案。

我有兴趣让 nunit 测试检查日志中特定条目的 log4net,并根据搜索结果断言。

基于我阅读的一篇不相关的文章:log4net,我想我可能可以使用 MemoryAppender 通过 GetEvents 方法并仔细阅读返回的事件数组来执行此操作。

但我想知道:1.有人做过吗?有什么陷阱或建议吗?任何替代方法?2. 有没有可以提供的食谱?

谢谢。

最佳答案

好的,回答我自己的问题(或者更确切地说,我的同事是,谢谢 Beth)。

在您的 log4net 配置中:配置:

<log4net>
<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender" />
<root>
<level value="DEBUG" />
<appender-ref ref="MemoryAppender" />
</root>
</log4net>

在您的 .net 代码中:

List<string> messages = new List<string>();
Hierarchy hierarchy = LogManager.GetLoggerRepository() as Hierarchy;
MemoryAppender appender = hierarchy.Root.GetAppender("MemoryAppender") as MemoryAppender;
LoggingEvent[] eventList = appender.GetEvents();

foreach (LoggingEvent item in eventList)
messages.Add(item.RenderedMessage);

return messages.ToArray();

一旦你有了消息数组,就可以做你想做的事了。

如果您有一个现有的日志文件并想搜索它,这不会解决。

关于unit-testing - NUnit 和 Log4Net 集成 : asserting based on the log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104487/

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