2015-03-04 28 views
11

Czytałem blog Scotta Gu na ASP.NET 5.0 features i jedną z nowych funkcji wymienionych na blogu jest użycie pliku json jako konfiguracji i eliminacji Plik Web.config.jak dodać konfigurację log4net (lub jakiejkolwiek innej biblioteki trzeciej) w ASP.NET 5.0

Mam kilka pytań dotyczących tej funkcji.

Przyjmijmy, mam następującą konfigurację log4net który został wcześniej dodany do web.config w poprzedniej wersji programu ASP.NET

plików

Config

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

<log4net debug="true"> 
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\\TestProj\\TestLog.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> 

Jak należałoby dodać sekcje w config.json?

Jak przekonwertować powyższy plik xml i dodać go do pliku config.json?

Czy biblioteka trzeciej strony (w moim przykładzie log4net) lub użytkownicy biblioteki muszą dodać jakiś niestandardowy interfejs API do konwersji w celu obsługi konfiguracji opartej na jsonie, aby skorzystać z nowej funkcji konfiguracyjnej dostępnej w ASP.NET 5.0?

Odpowiedz

0

Obecne wersje log4net nie obsługują projektów Json, więc konfiguracja musi znajdować się w osobnym pliku xml.

+0

Czy byłbyś w stanie podać przykład miejsca, w którym plik ma zostać umieszczony, jaki powinien on mieć nazwę, co powinien on zawierać i jak można go dodać do systemu konfiguracyjnego (w pliku Startup.cs)? –

10

Ostatnio miałem ten sam problem z log4net. Udało mi się zrobić to działa w następujący sposób:

Tworzenie log4net.xml plik konfiguracyjny zawierający sekcję dla log4net

<?xml version="1.0" encoding="utf-8" ?> 
<log4net> 
... 
</log4net> 

można umieścić plik w folderze głównym projektu.

A w metodzie Startup.Startup() można skonfigurować log4net zapewniając xml jako konfiguracja:

public Startup(IApplicationEnvironment appEnv) 
{ 
    // ... 

    XmlConfigurator.Configure(new FileInfo(Path.Combine(appEnv.ApplicationBasePath, "log4net.xml"))); 
} 

Mam nadzieję, że to pomaga.