私は、一連のSQLコマンドを実行するビジネスプロセスを持っています。私は、スタック内でこれらのSQLコマンドを「積み重ね」と例外が発生したときだけでDBにそれらを書きたい、私はlog4netのかNLogは、このシナリオをサポートしていれば、誰もが知っているいくつかのコードでログメッセージを積み重ねて例外が発生したときにログに記録する方法は?
public void BusinessMethod()
{
Log.Initialize(); // Clear the stack
try
{
Method1ThatExecutesSomeSQLs();
Method2ThatExecutesSomeSQLs();
Method3ThatExecutesSomeSQLs();
}
catch(Expection ex)
{
// if some exception occured in any Method above, them i write the log, otherwise, i dont want to log anything
Log.Write();
}
}
//Example of some Method that executes SQL's
public void Method1ThatExecutesSomeSQLs()
{
string sql = "select * from table";
ExecuteSQL(sql);
Log.StackUp("The following sql command was executed: " + sql); //Just stack up, dont write!
}
それを説明しましょうか?そうでない場合、それを実装する方法は?
これはLog4Netではないので、Log4Netではなく役立つかもしれませんが、Log4Netではなく、あなたが説明する機能を持つNLogを提案します。 – Michael
@Michaelはこの機能について説明しているNLogページを教えていただけますか? – Ewerton
さて、私はそれを見つけることができませんでした:(かなりの時間前に詳細を覚えていませんが、これは次のように機能します:フィルタ条件としてレベルを指定し、エラーを言います。レベルが指定されたレベル以上であれば、キューに入れられたメッセージとトリガされたメッセージがログに記録されます。バッファリングとフィルタリングのターゲットの組み合わせかもしれませんが、私はこれを行うためのカスタムコードを書いていないと確信しています...おそらくここにいる他の人が例を挙げることができます...? – Michael