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
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):
Ich prüfe dann die Protokolldatei bei Bedarf direkt von Visual Studio (Doppelklick auf die Datei lädt es herunter) Server Explorer:
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:
Richten Sie den lokalen Speicher als einen Bereich auf der Rolleninstanz (virtuelle Maschine) ein, in den Protokolldateien geschrieben werden.
Fügen Sie der Datei diagnostics.wadcfg ein Element hinzu, um Azure-Diagnosen anzuweisen, einen Container im Blobspeicher zu erstellen und zu verwenden.
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: Ссылка
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.
Es dauert einen halben Tag oder einen Tag, um Setup und Test, aber ich hoffe, dass das Ihre Frage beantwortet.