我正在尝试dotnet test
并尝试在控制台窗口中创建最少的日志,但之后在 trx 文件中添加更多日志。我首先尝试像这样简单地运行它:
dotnet test myDll.dll --logger trx --result-directory TestResult --verbosity n
但随后它记录了很多信息(实际上是我写给Log.Info
或的所有信息Log.Debug
)。所以我尝试了另一个级别的冗长:
dotnet test myDll.dll --logger trx --result-directory TestResult --verbosity minimal
但是有了这个,它甚至不会显示测试是否通过/失败(在测试运行时),我必须等到运行完成才能获得不好的摘要。
所以我开始查看我的 log4net 配置文件,看看我是否可以改变一些东西。它看起来像这样:
<log4net>
<!-- A1 is set to be a ConsoleAppender -->
<appender name='A1' type='log4net.Appender.ConsoleAppender'>
<!-- A1 uses PatternLayout -->
<filter type='log4net.Filter.LoggerMatchFilter'>
<loggerToMatch value='DebugLogger' />
<acceptOnMatch value='false' />
</filter>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="WARN" />
</filter>
<layout type='log4net.Layout.PatternLayout'>
<conversionPattern value='%date: %logger: %message%newline' />
</layout>
</appender>
<appender name='RollingFileAppender' type='log4net.Appender.RollingFileAppender'>
<file value='TestResult\\TestResultOut.txt' />
<appendToFile value='true' />
<rollingStyle value='Size' />
<maxSizeRollBackups value='10' />
<maximumFileSize value='100MB' />
<staticLogFileName value='true' />
<filter type='log4net.Filter.LoggerMatchFilter'>
<loggerToMatch value='DebugLogger' />
<acceptOnMatch value='false' />
</filter>
<layout type='log4net.Layout.PatternLayout'>
<conversionPattern value='%date: %logger: %message%newline' />
</layout>
</appender>
<!-- Set root logger level to DEBUG and its only appender to A1 -->
<root>
<level value='DEBUG' />
<appender-ref ref='A1' />
<appender-ref ref='RollingFileAppender' />
</root>
</log4net>
我像这样加载它:
var logRepo = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(logRepo, new FileInfo(LogFileName));
所以我可以将levelMin
levelRangeFilter 更改为INFO
,然后我的控制台会更干净。但问题是 TRX 文件将获得相同的次要信息,这使得调试变得困难。我也尝试了多个不同的记录器,但没有任何区别:
dotnet test myDll.dll --logger trx;verbosity=detailed --logger console;verbosity=normal --result-directory TestResult
所以我的问题是,我如何设置我的 log4net 以便它对verbosity
我发送的内容做出反应,dotnet test
或者我如何制作它以便我的 TRX 文件包含所有信息/调试日志但它不会在控制台中显示这些日志?