2016-12-12 3 views
0

Ich verwende log4net in meiner Webanwendung Wir stellen es über Cloud Services (NOT App Services) bereit.log4net mit RollingFileAppender in Azure/Blob Speicher

Mein Verständnis ist, dass ich nicht auf die Protokolldateien auf der Festplatte zugreifen kann (und außerdem sind diese Dateien sowieso nicht persistent).

Meine Messwerte sollen Blob Speicher verwenden. Aber ich sehe keinen Code darüber, wie man das macht. Es gibt ein Nuget-Paket https://www.nuget.org/packages/log4net.Appender.Azure aber die Dokumentation sagt, es erstellt eine Datei für jeden Protokolleintrag.

Was ich will, ist die RollingLogFile.

Muss ich grundsätzlich meine eigenen erstellen? Wie in, ziehen Sie den log4net-Quellcode herunter und erstellen Sie einen eigenen Appender, der sich an einem Cloud-Speicherkonto anstatt an einer Festplatte anmeldet? Scheint so viel Arbeit, hätte ich gedacht, dass jemand dieses Feature bereits codiert hat?

Danke.

Antwort

1

This project teilt uns einige Beispiele, die Protokolleintrag in Azure Blob Speicher mit AzureBlobAppender oder AzureAppendBlobAppender für log4Net speichern.

den Code nach, konnten wir finden AzureBlobAppender separate XML-Datei für jede Protokoll Einheit in Azure Blob Storage erstellen, aber AzureAppendBlobAppender wird Protokolle speichern, die durch den Aufruf CloudAppendBlob.AppendBlock method in einer Protokolldatei an einem Tag erzeugt einen neuen Block von Protokollen anhängen Daten an das Ende eines vorhandenen Blobs.

Wenn Sie keine XML-Datei für jeden Protokolleintrag erstellen möchten, können Sie versuchen, AzureAppendBlobAppender zu verwenden.

private static string Filename(string directoryName){ 
    return string.Format("**{0}/{1}.entry.log.xml**", 
          directoryName, 
          DateTime.Today.ToString("yyyy_MM_dd", 
          DateTimeFormatInfo.InvariantInfo)); 
} 
+0

Danke, ich hätte vor dem Posten in ihren Code tauchen sollen. Es tut nicht genau was ich will (d. H. Kein RollingFileAppender Ersatz), aber dies ist ein guter Ausgangspunkt, um mein eigenes zu machen. – Raymond

Verwandte Themen