2016-12-12 36 views
0

私はウェブアプリケーションでlog4netを使用しています 私たちはクラウドサービス(アプリケーションサービスではありません)を使って展開しています。RollingFileAppender with Azure/Blob Storage

私の理解では、ディスク上のログファイルにアクセスできなくなります(さらに、これらのファイルは永続的ではありません)。

私の読書はBLOBストレージを使用しています。しかし、私はこれを行う方法についてのコードはありません。ナゲットパッケージ https://www.nuget.org/packages/log4net.Appender.Azure がありますが、ドキュメントにはログエントリごとにファイルが作成されているというメッセージがあります。

私が望むのは、RollingLogFileです。

私は基本的に自分自身を作成する必要がありますか?のように、log4netのソースコードをプルダウンし、ディスクの代わりにクラウドストレージアカウントにログする自分のアペンダーを作成しますか?多くの仕事のようだが、誰かがすでにこの機能をコーディングしていると思っていただろうか?

ありがとうございました。

答えて

1

This projectは、AzureBlobAppenderまたはAzureAppendBlobAppenderをlog4Netに使用してAzure Blobストレージにログエントリを格納するサンプルを共有しています。

AzureBlobAppenderは、Azure Blobストレージ内の各ログエンティティごとに別々のxmlファイルを作成しますが、AzureAppendBlobAppenderは、1つのログファイルに1日に生成されたログを、ログの新しいブロックを追加するためにCloudAppendBlob.AppendBlock methodデータを既存のBLOBの末尾にコピーします。

ログエントリごとにxmlファイルを作成したくない場合は、AzureAppendBlobAppenderを使用できます。

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

ありがとうございました。投稿する前にコードに書き込んでください。これは、私が欲しいもの(RollingFileAppenderの代替品ではない)とまったく同じものではありませんが、これは自分自身を作るための素晴らしい出発点です。 – Raymond

関連する問題