2017-08-22 1 views
0

Ich arbeite an einem ASP.Net Web API 2 Projekt und habe nlog konfiguriert, um Anwendungsprotokolle in eine Datenbank zu schreiben.NLog verwenden Sie eine andere Konfigurationsdatei gemäß Lösungskonfigurationen

Da wir 4 Umgebungen (lokal, testen, Staging, prod) haben, muss ich Protokolle in verschiedenen Datenbanken schreiben.

Also, in meinem web.config ich habe:

<configSections> 
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/> 
</configSections> 

Auch Ich habe eine Nlog.config Datei:

<?xml version="1.0" encoding="utf-8"?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
    <target name="ExceptionLog" type="Database"> 
    <connectionString> 
     // DbConnectionString 
    </connectionString> 
    <commandText> 
     // INSERT COMMAND 
    </commandText> 
     // Parameters 
    </target> 

Was ich brauche, ist eine andere Verbindungszeichenfolge für jede Umgebung . Oder vielleicht eine Reihe von Dateien wie NLog.Staging.config, NLog.Testing.config etc.

Bitte beraten.

+0

Warum haben Sie einen Konfigurationsabschnitt * und * eine separate Datei? Wir haben hier 2 Konfigurationsdateien: NLog.Release.config und NLog.Debug.config und umbenennen sie entsprechend abhängig vom Build-Ziel. Das ist gut genug für unsere Anforderungen. Ich denke, es gibt raffiniertere Wege. – Fildor

+0

@Fildor Sie meinen, erstellen Sie einfach eine Datei für eine Lösung Konfiguration (Nlog.Staging.config und NLog.Release.config) und es würde funktionieren? – SJMan

+0

Angenommen, Sie konfigurieren NLog, um NLog.config als Konfigurationsquelle zu verwenden. Dann können Sie NLog.Staging.config, NLog.Release.config usw. bereitstellen. Abhängig von Ihrem Bereitstellungsziel müssen Sie dann die entsprechende Datei in NLog.config umbenennen, was durch ein Skript einfach erledigt werden kann. Hängt von Ihrer Bereitstellungstoolkette ab. In meiner Lösung verwende ich einfach eine post-build-Anweisung, um die entsprechende Konfiguration abhängig vom Build-Ziel in den bin-Ordner zu kopieren und umzubenennen. – Fildor

Antwort

0

Ihre Frage bezieht sich grundsätzlich auf Konfigurationsdateien im Allgemeinen. Werfen Sie einen Blick auf SlowCheetah. Dies wird helfen, jede Konfigurationsdatei basierend auf der VS-Konfiguration in verschiedene Layouts umzuwandeln.

Wir haben derzeit 3 ​​verschiedene Konfigurationen in Visual Studio, Debug, Staging und Release. Abhängig davon, für welche Konfiguration wir kompilieren, wandelt SlowCheetah die Dateien Web.Config und NLog.config in diese Konfiguration um, indem Zeilen oder ganze Abschnitte transformiert werden.

Verwandte Themen