2016-03-22 7 views
0

システムでazure Webジョブを使用して、後で処理するためにキューに入れられたWebサービスを介してリアルタイムで受け取ったxmlデータを処理しています。 Webjob関数の中には、かなり高い頻度(毎分100秒)で呼び出されるものがあります。最初にシステムを試したところ、ロギングはうまくいくように見えました。しかし、数週間後には大量のログデータが蓄積され、更新が中止され、「プロセス中の索引作成」がかなり頻繁に表示されるようです。Azure Webジョブのコントロールパネルロギングを制御および維持する方法は?

  1. ログを消去または消去するにはどうすればよいですか?
  2. 頻繁に更新されるジョブのログを選択的に無効にすることはできますか?これはどのように達成できますか?

私のウェブジョブは連続しており、c#apiを使用しています。私の質問はAzure webjobs output logs indexing taking very longと同じではありませんが、この回答も関連しています。ログをパージしてログを選択的にオフにする方法を具体的に求めていました。

Azure web jobs control panel logging

+0

可能性のある[Azure webjobs出力の重複の可能性が非常に長い時間を取るインデックスのログを記録する](http://stackoverflow.com/questions/31867532/azure-webjobs-output-logs-indexing-taking-very-long) – Peter

答えて

1
  1. あなたのWebJobでAzureWebJobsStorageアプリケーション設定や接続文字列を設定しているでしょう。ログは、このストレージアカウントのBLOBストレージに格納されます。手動でそれらをクリアすることができるはずです。

  2. あなたはAzureのWebJobs SDKを使用していると仮定すると、あなたは、アプリケーション設定のチェック内のすべての書き込みをラップすることができ、カスタムロガー

    JobHostConfiguration config = new JobHostConfiguration(); 
    config.Tracing.Tracers.Add(new CustomTraceWriter(TraceLevel.Info)); 
    JobHost host = new JobHost(config); 
    host.RunAndBlock(); 
    

    CustomTraceWriterにプラグインすることができ

if(CloudConfigurationManager.GetSetting("EnableWebJobLogging")) 
    { 
    .... 
    } 
+0

CustomTraceWriterが役に立ちます。ありがとうございます。 – user2486488

+0

さらに詳しい調査の後、私はリリースノートで以下を発見しました:https://github.com/Azure/azure-webjobs-sdk/wiki/Release-Notes#v111 - TraceLevel属性を使用して、ダッシュボードのロギングの細分性を制御できますウェブジョブ機能レベル。したがって、[TraceLevel(System.Diagnostics.TraceLevel.Error)]を関数に適用すると、エラーのみがダッシュボードに記録されます。これはまさに私が探しているものです。 – user2486488

関連する問題