1

log4net を使用する ASP.NET プロジェクトに取り組んでいます。開発環境sizeで、パラメータの要素を@stackTrace他の環境よりも高い値に設定したい。

log4net.config ファイルの構造は次のとおりです。

<?xml version="1.0"?>
<configuration>
    <log4net debug="true">
        <appender name="SQLServerAppender" type="log4net.Appender.AdoNetAppender">
            <parameter>
                <parameterName value="@stackTrace"/>
                <dbType value="String"/>
                <size value="1000"/>
                <layout type="log4net.Layout.RawPropertyLayout">
                    <key value="stackTrace"/>
                </layout>
            </parameter>
            <!-- More parameters -->
        </appender>
    </log4net>
</configuration>

value要素の属性sizeを 2000に変更したいと思います。

次の変換ファイルを試しましたが、何も変わりませんでした:

  <?xml version="1.0" encoding="utf-8"?>
  <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <log4net>
      <appender name="SQLServerAppender" type="log4net.Appender.AdoNetAppender">
        <parameter xdt:Locator="XPath(configuration/log4net/appender[@name='SQLServerAppender']/parameter[parameterName[@value='@stackTrace']])"
                   xdt:Transform="Remove">
        </parameter>
      </appender>
    </log4net>
  </configuration>

「削除」は、何かを起こそうとする最後の手段でした。

目的の変換を実行するにはどうすればよいですか? xdt:Locatorこの場合、どのように組み合わせるかは私には明らかではありませんxdt:Transform

4

3 に答える 3

1

私は間違っているかもしれませんが、Web.config 変換を他の任意の xml ファイルに適用できるとは思いません。

その目的のために、私は通常、SlowCheetahを使用します: http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5

これは優れたツールであり、非常に使いやすく (web.config 変換に似ていますが、何にでも適用できます)、自動化されたビルドやデプロイともうまく統合されます。

Scott Hanselman によるガイドは次のとおりです 。 http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

于 2014-02-13T01:59:12.503 に答える
0

これを試して:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<log4net>
  <appender name="SQLServerAppender" type="log4net.Appender.AdoNetAppender">
    <parameter>
       <size value="2000" xdt:Locator="XPath(configuration/log4net/appender[@name='SQLServerAppender']/parameter[parameterName[@value='@stackTrace']])" xdt:Transform="SetAttributes"/>
    </parameter>
  </appender>
</log4net>

于 2014-02-13T02:05:44.113 に答える