私は既にその質問hereを頼みましたが、私はStackoverflowの方が速いかもしれないと感じています。これは私が私のJSONの設定ファイルでそれをやろうとしている方法です:appsettings.jsonで自分のKeyGeneratorインスタンスを設定する方法は?
{
"Serilog": {
"Using": [ "Serilog.Sinks.AzureTableStorage" ],
"WriteTo": [
{
"Name": "AzureTableStorage",
"Args": {
"storageTableName": "Logs",
"connectionString": "*************",
"keyGenerator": "MyApp.Serilog.AzureTableStorage.MyKeyGenerator"
}
}
],
"MinimumLevel": "Verbose"
}
}
これは私の発電機の実装です:
明らかpublic class MyKeyGenerator : IKeyGenerator
{
public string GeneratePartitionKey(LogEvent logEvent)
{
return Environment.MachineName;
}
public string GenerateRowKey(LogEvent logEvent, string suffix = null)
{
return SUID.nextId().ToString();
}
}
それが収まるようにしようとするので、.ReadFrom.Configuration
操作は、InvalidCastException
をスローします文字列の内容をIKeyGenerator
パラメータに変換します。
MyKeyGenerator
クラスのインスタンスが作成され、そのパラメータに指定されるように、keyGenerator
パラメータを設定する必要がありますか?
IMHOその 'throwOnError:false'引数を持たず、適切なエラーメッセージ(タイプが見つかりません)で例外をバブルアップさせるほうがはるかに役立ちます。私はここでエラーに投げていないユースケースが提供されているのか分かりません。 – formixian