2009-02-16 26 views
6

Log4Net'i IIS 6 dağıtımlı WCF Uygulamasından oturum açmak için kullanmaya çalışıyoruz. Bir dosyaya giriş yapmaya çalışıyoruz, ancak günlük dosyalarının oluşturulmasını sağlayamıyoruz; dışarı web.config ilgili parçalarıdır:Log4Net'in WCF uygulamasında çalışması için alamıyorum

biz INFO seviyesi günlük DebugView kullanırken bizim uygulamanın çıkan görebilirsiniz Bu yapılandırma ile
<sectionGroup name="common"> 
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
</sectionGroup> 
... 
<common> 
    <logging> 
     <factoryAdapter type="Common.Logging.Simple.TraceLoggerFactoryAdapter, Common.Logging"> 
      <arg key="level" value="INFO" /> 
      <arg key="showLogName" value="true" /> 
      <arg key="showDataTime" value="true" /> 
      <arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:fff" /> 
     </factoryAdapter> 
    </logging> 
</common> 

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
     <param name="File" value="c:\logs\ApplicationInfoTest.log" /> 
     <threshold value="INFO" /> 
     <param name="AppendToFile" value="true" /> 
     <param name="DatePattern" value="ddMMyyyy" /> 
     <param name="MaxSizeRollBackups" value="10" /> 
     <param name="MaximumFileSize" value="10MB" /> 
     <param name="RollingStyle" value="Size" /> 
     <param name="StaticLogFileName" value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <param name="Header" value="\r\n\r\n---------------------------------------------\r\n" /> 
      <param name="Footer" value="\r\n---------------------------------------------\r\n\r\n" /> 
      <param name="ConversionPattern" value="%d [%t] %-5p - %m%n" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="INFO" /> 
     <appender-ref ref="FileAppender" /> 
    </root> 
    </log4net> 

, ancak bu parça değil itibaren olduğu açıktır
parça.

Web.config'te ayarlayamadığımız bir şey var mı? Yazılacak günlükler için oluşturduğumuz dizin ile bir izin sorunu mu?

Lütfen açık olan hatamızı işaret edin.

+1

@GeorgeStocker Nasıl 2 yıl önce olduğu gibi bu yineleniyor diğeri? –

cevap

5

Kullanım ProcessMonitor from SysInternals izinleri

eminmisin

(Potansiyel bir Ayıklayıcı ekleme ve istisnalarla ilgili değil, sadece My Code yakalayarak aynı bilgi belirleyebilir) reddetti ediliyor nerede olduğunu öğrenmek için Hizmetin çalışmakta olduğu işlemin, yazmaya çalıştığınız klasörde izinleri var mı?

+0

Merhaba Ruben. Giriş için teşekkürler. Klasör (şimdilik, işe gelene kadar), Herkes, ANONYMOUS LOGIN ve Yöneticiler kullanıcıları için "Tam Denetim" izinlerine sahiptir. –

+0

Procmon, herhangi bir kafa karışıklığı varsa bu adamdır - size hangi asıl istediğini ve nerede yapamayacağını gösterir. Yönetici kullanıcıları eklemek yardım etmeyecek. Genellikle varsayılan uygulama havuzları Ağ hizmeti olarak çalışır. Ama bu durumda balık tutmayı öğrenmekten çok daha iyisin. –

+0

Normal günlük kaydı gerçekleştiği için başlatmayı kesinlikle bağladığınız sorunun üstesinden aldım - iki ekleyicinin hala başarısız olan bir tanesi olduğundan emin olmak için yapılandırmanız gerekir. –

8

Ayrıca log4net'in çalışmasını sağlamak için bu satırı uygulamamın AssemblyInfo.cs dosyasına eklemeliydim.

// LOG 4 net config 
[assembly:log4net.Config.XmlConfigurator(Watch=true)] 
+0

Şüphesiz, normal günlük kaydı işe yaramazdı - yapılandırma sorun değil midir? –

+0

Bu satırı, log4net'i ilk kez kullandığınız proje/dll'de belirtmeniz gerektiğini unutmayın. Bu nedenle, genellikle hiç şansım yok ve sadece assemblyInfo.cs'lerin hepsine ekliyorum. – Ruben

+0

hangi projeyi özel olarak farklı bir projeye sahip olduğumu, farklı bir projede WCF ana bilgisayarını ve hata yaptıkları ayrı bir projeyi yaptığım gibi bu satırı eklemeniz gerekiyor .. – chugh97

0

Log4net için yapılandırılmış bir yapılandırma bölümünüz var mı? Kod snippet'ini

2

deneyin XmlConfigurator.Configure() bakmak bir konsol uygulaması olarak hizmet çalıştırma emin değilseniz