0

私は実験を行って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));

levelMinlevelRangeFilter を に変更するINFOと、コンソールがずっときれいになります。しかし問題は、TRX ファイルが同じマイナーな情報を取得するため、デバッグが困難になることです。このような複数の異なるロガーも試しましたが、違いはありませんでした:

dotnet test myDll.dll --logger trx;verbosity=detailed --logger console;verbosity=normal --result-directory TestResult

だから私の質問は、どのように log4net をセットアップしてverbosity送信に反応するようdotnet testにするか、または TRX ファイルにすべての情報/デバッグ ログが含まれるようにするにはどうすればよいですか?

4

0 に答える 0