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.
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
@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
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