2017-07-13 7 views
1

Serilog.Sinks.SumoLogic(1.0.1)をAzure関数のアプリケーション(.NETコアなし)にログを実装しようとしています。以下は私たちが使用しているコードとappsetting.jsonです。Azure関数:Appsetting.jsonがSerilog.Sinks.Sumologicと連携していません

コード:

var configuration = new ConfigurationBuilder() 
       .SetBasePath(Directory.GetCurrentDirectory()) 
     .AddJsonFile("appsettings.json",optional: false, reloadOnChange: true) 
     .Build(); 

var loggerFromConfig = new LoggerConfiguration() 
       .ReadFrom.Configuration(configuration) 
       .CreateLogger(); 

Appsettings.json:

{"Serilog": { 
"MinimumLevel": { 
    "Default": "Information", 
    "Override": { 
    "System": "Warning", 
    "Microsoft": "Warning" 
    } 
    }, 
    "WriteTo": [ 
    { 
    "Name": "SumoLogic", 
    "Args": { 
     "endpointUrl": "https:" 
     } 
    } 
    ]  
} 
} 

上記のAppSettingで、私たちが存在することを示しているloggerFromConfig対象と_sinks = {Serilog.Core.ILogEventSink[0]}でsumologicシンクを結合することができませんシンクが設定されていない。

Microsoft.NET.Core.Appsの依存関係を持つサンプルプロジェクトで同じコードを試してみるとうまくいきます。

appsettings.jsonは.NETコアアプリケーションでのみサポートされているようです。

Serilogを使用してappsettings.json(.NETコアアプリケーションなし)でログを書き込む方法をお勧めします。

+0

私の答えが役に立ったら/役に立ったと思ったら、それを他の人に恩恵を受けるための回答としてマークしてください。 –

答えて

1

私が知る限り、ReadFrom.Configurationメソッドは、.netコアプロジェクトのappsettings.jsonから設定を取得するために使用されます。

ReadFrom.ConfigurationメソッドにはIConfigurationオブジェクトが必要です。 ConfigurationBuilderを使用する場合は、NugetからMicrosoft.Extensions.Configurationパッケージをインストールする必要があります。

このNugetパッケージをインストールすると、ConfigurationBuilderクラスを使用できます。しかし、Microsoft.NETCore.Platformsパッケージもインストールされます。

私の意見では、ネットアプリケーションでSerilogを使用する正しい方法は、このようなLoggerConfiguration()。WriteTo.SumoLogicメソッドを使用していることです。

var logger = new LoggerConfiguration().WriteTo.SumoLogic(url, 
           sourceName: "CustomSourceName", 
           sourceCategory: "CustomSourceCategory", 
           restrictedToMinimumLevel: LogEventLevel.Debug, 
           batchSizeLimit: 20, 
           period: TimeSpan.FromSeconds(1), 
           textFormatter: new RawFormatter()) 

詳細については、codesを参照してください。

ReadFrom.Configurationメソッドもappsettings.jsonファイルから設定を読み込み、これらの設定を使用してLoggerConfigurationオブジェクトを作成するので、LoggerConfiguration()。WriteTo.SumoLogicメソッドを直接使用することをお勧めします。

さらに、appsettings.jsonを使いたい場合は、Newtonsoftパッケージを使用してappsettings.jsonの設定を読むことをお勧めします。次に、これらの設定をパラメータとしてLoggerConfiguration()。WriteTo.SumoLogicメソッドに渡すことができます。

関連する問題