2011-10-27 12 views
0

私たちはUIレイヤーでlog4netをうまく使っていますが、Webサービスレイヤーでテストしてもうまくいきません。ここでウェブサービスのlog4net問題

UIレイヤのコードです:ここで

public partial class _Default : System.Web.UI.Page 
{ 

    ILog logger = log4net.LogManager.GetLogger(typeof(_Default)); 


    protected void Page_Load(object sender, EventArgs e) 
    { 
     ServiceReference1.IService1 is1 = new ServiceReference1.Service1Client(); 
     is1.GetData(1); 

     logger.Info("Hello Nine Thanks for use Log4Net,This is info message"); 
     logger.Debug("Hello Nine Thanks for use Log4Net,This is Debug message"); 
     logger.Error("Hello Nine Thanks for use Log4Net,This is Error message"); 
     logger.Warn("Hello Nine Thanks for use Log4Net,This is Warn message"); 
     logger.Fatal("Hello Nine Thanks for use Log4Net,This is Fatal message"); 

    } 
} 

UIレイヤのweb.configの設定である:ここで

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <param name="File" value="MyloggerSite2.log"/> <!-- This is logging in app root folder --> 

     <param name="AppendToFile" value="true"/> 
     <layout type="log4net.Layout.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %-2p %c [%x] - %m%n"/> 

     </layout> 
    </appender> 
    <root> 
    <level value="All"/> 
     <appender-ref ref="FileAppender"/> 
    </root> 
</log4net> 

はServiceLayerのコードですそれはそれが上記のものとほとんど同じですが動作しません:

public class Service1 : IService1 
{ 
    public string GetData(int value) 
    { 
     ILog logger = log4net.LogManager.GetLogger(typeof(Service1)); 

     logger.Info("Hello Nine Thanks for use Log4Net,This is info message"); 
     logger.Debug("Hello Nine Thanks for use Log4Net,This is Debug message"); 
     logger.Error("Hello Nine Thanks for use Log4Net,This is Error message"); 
     logger.Warn("Hello Nine Thanks for use Log4Net,This is Warn message"); 
     logger.Fatal("Hello Nine Thanks for use Log4Net,This is Fatal message"); 

     return string.Format("You entered: {0}", value); 
    } 
} 

ご提案がありましたら教えてください。私はちょうどAssemblyInfo.csに手動でこの属性を追加した

[assembly: log4net.Config.XmlConfigurator(Watch=true)] 

答えて

3

は、Webサービスでは、このような属性を持っていることによって、あなたは、例えばlog4netのを設定しますアセンブリ:log4net.Config.XmlConfigurator(Watch = true)]

これは動作します。おかげさまで

+0

お返事ありがとうございました。私はクラスとメソッドの両方のためにこのように追加しましたが、あなたがこのようなことを意味するかどうかはわかりません: public class Service1:IService1 { [assembly:log4net。 {しかし、運がない –

+0

私は、アセンブリレベルの属性をどのように使用するのかはっきりしていると思っていましたが、どのように動作するのか分かりましたようです。 –

0

[ おかげで、 N

-1

サービスのプロジェクトのWebコンフィグレーションファイルに以下のアセンブリを追加するだけです。

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 
+0

Web configではなく、AssemblyInfo.csにあります。 –

関連する問題