Azure anmelden

8

Wie können wir Azure mit der Granularität & amp; Kontrolle äquivalent zu log4net? Wir verwenden log4net in unseren Web-Apps, die wir auf IIS ausführen, und das funktioniert sehr gut für uns. Ist das auch das Beste auf Azure?

Wir bevorzugen absolut Log-Dateien ( im Gegensatz zu Datenbankeinträgen ), aber wenn es etwas gibt funktioniert besser in Azure, ich bin offen für Verbesserungen. Die Art und Weise, wie Trace in eine Tabelle in Azure schreibt, ist furchtbar - das wollen wir definitiv nicht.

Der Grund, warum ich Log-Dateien bevorzuge, ist, dass es sehr einfach ist zu sehen, was in der Sequenz passiert ist, was ich in 99% der Fälle brauche.

Dies ist für eine Azure-Webanwendung mit mehreren Instanzen. Es ist in Ordnung, wenn die Protokolle für jede Instanz unterschiedlich sind.

danke - dave

    
David Thielen 17.09.2014, 23:10
quelle

3 Antworten

10

Das ist ziemlich einfach. Ich verwende die folgende log4net -Konfiguration, um eine Protokolldatei im Root-Ordner der Webanwendung auszugeben (leicht in einen Unterordner zu ändern):

%Vor%

Ich prüfe dann die Protokolldatei bei Bedarf direkt von Visual Studio (Doppelklick auf die Datei lädt es herunter) Server Explorer:

    
Brendan Green 18.09.2014, 22:08
quelle
10

Ich denke, Sie sollten vorsichtig sein, wenn Sie die Protokolldatei lokal in Azure speichern, da dies nicht garantiert ist. Die VM, die zum Speichern der Website verwendet wurde, kann erneut erstellt werden und die Protokolle gehen verloren.

Eine bessere Lösung ist die Verwendung von Azure-Diagnose in Verbindung mit log4net (würde für andere Protokollierungsmechanismen wie NLog funktionieren). Prozess wird hier zusammengefasst:

  1. Richten Sie den lokalen Speicher als einen Bereich auf der Rolleninstanz (virtuelle Maschine) ein, in den Protokolldateien geschrieben werden.

  2. Fügen Sie der Datei diagnostics.wadcfg ein Element hinzu, um Azure-Diagnosen anzuweisen, einen Container im Blobspeicher zu erstellen und zu verwenden.

  3. Fügen Sie ein Element hinzu, das Azure-Diagnosen anweist, den Protokollordner im lokalen Speicherort von LogStorage zu überwachen.

Auf diese Weise werden die lokal gespeicherten Protokolle in den BLOB-Speicher kopiert.

Volle Geschichte hier: Ссылка

    
Stefan Iancu 01.02.2015 03:20
quelle
0

Die beste Methode zum Protokollieren von Daten für Azure-VMs oder Cloud-Dienste besteht darin, Log4Net zum Protokollieren auf Datenträger sowie zum Protokollieren von Informationen von allen Instanzen zu einem Azure-Speicherkonto zu verwenden. Der Vorteil ist, dass Sie eine robustere Lösung erhalten. Wenn Azure Diagnostics aus irgendeinem Grund während einer Live-Site bricht, können Sie immer noch in eine der Instanzen remote schalten und versuchen, das Problem zu diagnostizieren. Für andere Dienste wie Web-Apps, bei denen Sie nicht in die Instanzen gelangen können, ist es ausreichend, Informationen in Azure Storage-Konten zu protokollieren.

  1. Auf Datenträger protokollieren: Wenn Sie einen Cloud-Service haben, hat Ihre Webrolle / -rolle nur die Berechtigung zum Schreiben auf die Anwendungsdiskette, die ziemlich klein ist, wie in hier und hier . Wenn Sie mit der Protokollierung nicht mehr als 200-300 MB Festplattenspeicher zufrieden sind, dann sind Sie gut. Wenn Sie jedoch mehr Protokolle erstellen möchten, empfiehlt es sich, das Konzept LocalStorage zu verwenden, mit dem Sie Speicherplatz auf dem Laufwerk C reservieren können, das über sehr viel Speicherplatz verfügt (für Small PaaS-VMs) Laufwerk C hat 225 GB grob, während das Anwendungslaufwerk (E: / F :) 1,5 GB Speicherplatz hat). Sie können lernen, wie Sie hier den lokalen Speicher verwenden können.
  2. Bei Azure Storage Account anmelden: Sie müssen Azure Diagnostics wie abgebildet aktivieren hier . Außerdem müssen Sie Log4Net einen Trace Appender hinzufügen, wie in hier .

Es dauert einen halben Tag oder einen Tag, um Setup und Test, aber ich hoffe, dass das Ihre Frage beantwortet.

    
user3613932 30.01.2017 03:28
quelle

Tags und Links