çağrıldığında çalışır ben thisquestionhasbeenaskedseveraltimes ama maalesef benim günlüğü yapılandırması çalışma almanız mümkün olmamıştır anlıyoruz. Bir yerlerde çok küçük bir hata yapmak zorundayım.log4net sadece XmlConfigurator.Configure()
.NET 4.5 MVC 4/EF 5 web uygulamasına sahibim ve çalışmaya başlamak için çalışıyorum. Çözüm, biri DAO ve model objeler için, diğeri ise web sitesi olmak üzere iki projeye sahiptir. App.Config dosyası şuna benzer: Aynı log4net bölümü de Web.Config dosyasında kopyalanan
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="RebuildingTogetherEntities" connectionString="stuff..."/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
<log4net configSource="Log.config" />
</configuration>
.
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
"Output Directory için Kopyala" hem Log.Config dosyalar için true olarak ayarlanır:
ben hem AssemblyInfo.cs dosyalarına aşağıdaki eklendi.Çıkış dosyasına eklemek için günlüğe kaydetme gibi görünen tek yol, ilk günlüğe kaydetme deyimi çalışmadan önce XmlConfigurator.Configure() yöntemini çağırmaktır. Sanırım ilk kayıtçıyı aldığımda bunu yapmak için bir cephe yazabilirim, ama bu sadece yanlış geliyor.
XmlConfigurator'ı el ile çağırmadan kaydediciyi nasıl başlatırım?
http mu başvurunun giriş noktasında aşağıdakileri ekleyin: // stackoverflow.com/questions/3971250/log4net-configuration-from-assembly-attribute-does-not-load-configuration-file Uygulanır? – sgmoore
Görünmüyordu ... bu durumda, uygulama kapatılmadan önce log4net'ten bir mesaj geldi, fakat bu mesajı benim durumumda göremiyorum. Yine de öneriniz için teşekkürler. – Brad
Mantığınıza katılıyorum emin değilim. Dahili günlük kaydı olmadıkça log4net mesajını göremezsiniz ve sisteminiz log.config dosyanızı okumadıysa, büyük olasılıkla açık olmayacaktır. Önemli olan, GetLogger (...) gibi bir şey yaptığınızda, sistemin temel olarak Attribute.GetCustomAttributes (Assembly.GetCallingAssembly(), typeof (log4net.Config.ConfiguratorAttribute), false) ile eşdeğer bir şey yapacağıdır. Bu nedenle, uygulamanızın başlangıcında çok erken giriş yapmazsanız, ilk günlüğünüz, özel özniteliğe devam etmeyen bir derlemeden başlatılabilir. – sgmoore