HttpClientを使用するターゲットを作成する必要があります。 HttpClientには同期メソッドは含まれていませんが、すべてTask非同期呼び出しを返します。これをNLogターゲットで使用する最善の方法は何ですか、apiは非同期/認識待ちのように見えますか?NLogターゲットのHttpClient
1
A
答えて
1
多分、
public class CustomTarget : Target
{
protected override async void Write(NLog.Common.AsyncLogEventInfo logEvent)
{
try
{
await WriteAsync(logEvent.LogEvent).ConfigureAwait(false);
logEvent.Continuation(null);
}
catch (Exception ex)
{
InternalLogger.Error(ex, "Failed to sent message");
logEvent.Continuation(ex);
}
}
}
それとも、このPRからコードを盗む:https://github.com/NLog/NLog/pull/2006
1
シンプルにするには、async-taskでWait()を実行します。次に、AsyncTargetWrapperを使用してカスタムターゲットをラップします。次に、アクティブなhttpリクエストが多すぎることを心配する必要もありません。
しかし、NLogは、遅延ログ書き込み操作を実行するターゲットには問題ありません。唯一の必要な契約は、LogEventInfoと共に提供される非同期継続が、遅延ログ書き込み操作が最終的に完了した後に呼び出されることです(ネットワークターゲットのインスピレーションを参照してください)
関連する問題
- 1. アプリケーションの洞察NLogターゲット
- 2. NLogデータベースのターゲットをデバッグする方法
- 3. NLogのPerfCounterターゲットの目的は何ですか
- 4. Nlogコンソールのターゲットが動作していないモノですか?
- 5. ASP.NET MVC - NLogファイルのターゲットが見つかりません
- 6. Azure Application Insight with NLog(ターゲットが見つかりません)
- 7. NLogはターゲットとしてsnmpトラップを送信できますか?
- 8. SignalRを使用してNLogターゲットを書き込む方法
- 9. Nlog - ターゲットとの間のデータベースのパフォーマンスの差がオフラインであり、ターゲットが存在しません。
- 10. 実行時にプログラムでNLogターゲットの基底を変更します
- 11. ログメッセージをNLogにバッファリングして、手動でそれらをターゲットにフラッシュします。
- 12. NLogがターゲットに送信する前にデータを準備しますか?
- 13. NLog on ASP.NET MVC 4:NLogまたはNLog.Web
- 14. 無効にnlogログはNLogで
- 15. レイアウトのnlogサブストリング
- 16. nlogデータベースターゲットパラメータのレイアウトエラー
- 17. nLogとのTransactionScope
- 18. NLogメモリターゲットエラー
- 19. NLogグローバルプロパティ
- 20. java httpClientによるターゲットWebサーバーの情報の検索方法は?
- 21. NLog StackOverflowの例外/ NLog.NLogRuntimeExceptionは、私は2つのMySQL /データベースのターゲットに/ NLogはエラーをログに記録するログを設定した
- 22. VS 2008ユニットテストのNLog
- 23. NLogアーカイブの設定
- 24. NLogファイルチェックサムの作成
- 25. Nlog&Rebusでのログ
- 26. NLog - RabbitMQクラスタターゲット
- 27. Ninject logger using NLog
- 28. NlogコンフィグはDB
- 29. カスタムNLog Appender
- 30. NLogはSqlDatabase
多分それはまた、ターゲットに 'Tasks'を格納するオプションだと' 'FlushAsync'でそれらをawait'? – Julian
@Julianタスクベースの非同期メソッドをサポートするためにNLogを更新する計画はありますか? – Dismissile
@Dismissile NLog ver。 4.4.6にはhttps://github.com/NLog/NLog/blob/master/src/NLog/Targets/AsyncTaskTarget.csが含まれています –