2

私はセリログを見て、いくつかのテストを実行しています。これまでのところ、コンソールまたはファイルへの書き込みは正常に機能しています。ただし、RavenDb シンクで動作させるには運がありません。これをasp.net 5アプリで機能させようとしています。以下の記事をレビューしました。

http://nblumhardt.com/2015/05/diagnostic-logging-in-dnx-asp-net-5/ http://nblumhardt.com/2013/06/serilog-and-ravendb/

空のアプリから始めて、project.json に次の依存関係を追加しました。

"Serilog.Framework.Logging": "1.0.0-rc1-final-10071",
"Serilog.Sinks.RavenDB": "1.5.4",
"RavenDB.Client": "3.0.30000"

dnxcore も削除しました。

次に、startup.cs に次のコードを追加しました。

public Startup()
{
    var documentStore = new DocumentStore()
    {
        Url = "http://localhost:8080",
        DefaultDatabase = "Logs"
    }.Initialize();

    Log.Logger = new LoggerConfiguration()
       .WriteTo.File(@"c:\temp\log.txt")
       .WriteTo.Console()
       .WriteTo.RavenDB(documentStore)
       .CreateLogger();
}

public void ConfigureServices(IServiceCollection services)
{
}

public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
    loggerFactory.AddSerilog();
    app.UseIISPlatformHandler();

    app.Run(async (context) =>
    {
        Log.Information("Hello World");
        await context.Response.WriteAsync("Hello World!");
    });
}

すべてがファイルとコンソールに正常に記録され、ログ データベースが作成されますが、ログ エントリは RavenDb に保存されません。

さまざまなログレベルを試しました。バッチサイズを小さくしてみました。これはドキュメント ストアのライフサイクルと関係があるのではないかと考えたので、ConfigureServicesメソッドに次のコードを追加しました。

services.AddSingleton(x =>
{
   return new DocumentStore()
   {
       Url = "http://localhost:8080/",
       DefaultDatabase = "Test",
   }.Initialize();
}

次に、ロガー構成コードをConfigureメソッドに移動し、DI インスタンスを使用しましたが、それも機能しません。同じものを使用して、他のオブジェクトを RavenDb に保存できますDocumentStore

構成設定などを見逃していませんか?

4

1 に答える 1

0

これを最新の RavenDb クライアントで動作させることができました。新しい (パッケージ) スタイル ライブラリを作成し、Serilog nuget パッケージ v2.0.0-beta-403 を追加し、RavenDB.Client v3 nuget パッケージを追加し、既存の Serilog.Sinks.RavenDb ライブラリから .cs ファイルをドロップしました。コンパイルして動作し、コードを変更する必要はありませんでした。

まだあまりテストする機会がありませんが、うまく機能しているようです。もちろん、Serilog v2 ベータ版がどれほど安定しているか、リリースされるまでの期間はわかりません。良い点は、serilog v2 が .netcore をサポートしていることです。残念ながら、RavenDb クライアントは、少なくともまだそうではありません。

于 2015-12-12T03:33:15.240 に答える