私はASP.Net Web API 2プロジェクトで作業しており、アプリケーションログをデータベースに書き込むようにnlogを設定しました。NLogはソリューション構成に応じて異なる設定ファイルを使用します
私たちは4つの環境(local、testing、staging、prod)を持っているので、私は別のデータベースにログを書き込む必要があります。
だから、私のweb.configファイルで私が持っている:
<?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>
何が必要なの環境ごとに異なる接続文字列は次のとおりです。
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
また
、 私はNlog.configファイルを持っています。または、おそらくNLog.Staging.config、NLog.Testing.configなどのようなファイルの束
お勧めします。
なぜ設定セクション*と*別ファイルがありますか?ここには2つの設定ファイルNLog.Release.configとNLog.Debug.configがあり、名前の変更はビルドターゲットによって異なります。それは私たちの要件には十分です。私はもっと洗練された方法があると思う。 – Fildor
@Fildorというのは、単にソリューション構成(Nlog.Staging.configとNLog.Release.config)用のファイルを作成するだけで、うまくいくでしょうか? – SJMan
構成ソースとしてNLog.configを使用するようにNLogを構成するとします。その後、NLog.Staging.config、NLog.Release.configなどを提供することができます。配布ターゲットに応じて、次のスクリプトファイルで簡単に実行できるNLog.configファイルに名前を変更する必要があります。展開ツールチェーンによって異なります。私の解決策では、構築後のステートメントを使用して、適切な設定をビルドターゲットに応じてbinフォルダにコピーして名前を変更します。 – Fildor