4

log4netのすべての部分を追加しましたが、ファイルに書き込みません。
私はVS2012LoadTestプロジェクトで作業しています。

LoadTestプロジェクトを実行するとき、またはは機能しSystem.Console.WriteLineません。Debug.WriteLine()

アセンブリ情報行を追加しました:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "web.config", Watch = true)]   //For log4net 1.2.10.0

私は: -webconfig
セクションを追加しまし
た-構成されたXML初期化子を初期化
しました-適切なログで新しいlog4netを初期化しました

私のapp.config:

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Settings_CacheExplosion.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

</configuration>

私のクラス:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.17929
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace WebAndLoadTestProject1
{
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Text;
    using log4net;
    using log4net.Core;
    using Microsoft.VisualStudio.TestTools.WebTesting;


    public class Settings_CacheExplosion : WebTest
    {
        private static readonly ILog activityLog = LogManager.GetLogger("Activity"); 

        private static int _ctidsCounter { get; set; }

        public static int CtidsCounter
        {

            get
            {

                if (_ctidsCounter == 2000)
                {
                    _ctidsCounter = 1000;
                }
                return _ctidsCounter++;
            }
            set
            {
                _ctidsCounter = value;
            }
        }

        public Settings_CacheExplosion()
        {
            this.PreAuthenticate = true;

            CtidsCounter = 1000;

            log4net.Config.XmlConfigurator.Configure();
        }


        public override IEnumerator<WebTestRequest> GetRequestEnumerator()
        {
            WebTestRequest request1 = new WebTestRequest("http://clientservice.mam.qasite-services.com/settings");

            request1.Method = "POST";

            Debug.WriteLine(string.Format("ctid={0}", CtidsCounter));

            request1.QueryStringParameters.Add("ctid", CtidsCounter.ToString(), false, false);
            StringHttpBody request1Body = new StringHttpBody();
            request1Body.ContentType = "";
            request1Body.InsertByteOrderMark = false;
            request1Body.BodyString = "";
            request1.Body = request1Body;

            activityLog.Debug(string.Format("ctid={0}", CtidsCounter));
            //Console.WriteLine(string.Format("ctid={0}", CtidsCounter));

            yield return request1;
            request1 = null;
        }
    }
}
4

3 に答える 3

5

log4net に app.config から読み取らせたい場合は、これをAssemblyInfo.csファイルに追加する必要があります。

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
于 2012-11-05T16:26:36.147 に答える
4

あなたのapp.configを見る:

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />

これは、アプリが起動時にエラーで .NET 4.0 での起動を拒否するようにするために機能します。

Framework .NET4.5 を使用している場合、log4net はサポートしていません。http://logging.apache.org/log4net/release/features.htmlのフレームワーク セクションを参照してください。

于 2012-11-05T16:38:39.557 に答える
1

<param name = "Activity" value="Settings_CacheExplosion.txt" />の代わりに使用し<file value="Settings_CacheExplosion.txt" />ます。あなたのxml設定セクションで。

于 2012-11-05T17:16:42.663 に答える