如何指定 Serilog.Sinks.MongDB 接收器的集合
How do I specify the collection for Serilog.Sinks.MongDB sink
github 上的文档使用以下连接字符串:
.WriteTo.MongoDB("mongo://mymongodb/log")
它说要使此示例正常工作,您需要将名为 log 的集合添加到您的服务器。但是,此连接字符串会将您连接到服务器上的日志数据库,并且不会指定任何集合。我找不到有关在连接字符串中指定集合的任何信息(这是有道理的),那么如何告诉 MongoDB 接收器要写入哪个集合?
我在应用程序中添加了 SelfLog.Out = Console.Out,但我在输出 window 中没有看到任何对我有帮助的东西。
稍后:我将一个名为 "log" 的集合添加到我的数据库中,Serilog 正在写入该集合。所以看起来 "log" 被烘焙到驱动程序中。我想要这个特定数据库的两个不同的日志。所以我的问题仍然存在。有办法吗?
下载源码,在MongoDBLoggerConfigurationclass构造函数的签名中添加一个集合参数。更改后的代码标有**。
public static LoggerConfiguration MongoDB(
this LoggerSinkConfiguration loggerConfiguration,
string databaseUrl,
**string collectionName = null,**
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
int batchPostingLimit = MongoDBSink.DefaultBatchPostingLimit,
TimeSpan? period = null,
IFormatProvider formatProvider = null)
{
if (loggerConfiguration == null) throw new ArgumentNullException("loggerConfiguration");
if (databaseUrl == null) throw new ArgumentNullException("databaseUrl");
var defaultedPeriod = period ?? MongoDBSink.DefaultPeriod;
return loggerConfiguration.Sink(
new MongoDBSink(
databaseUrl,
batchPostingLimit,
defaultedPeriod,
formatProvider,
**collectionName ??** MongoDBSink.DefaultCollectionName,
new CreateCollectionOptions()),
restrictedToMinimumLevel);
}
github 上的文档使用以下连接字符串:
.WriteTo.MongoDB("mongo://mymongodb/log")
它说要使此示例正常工作,您需要将名为 log 的集合添加到您的服务器。但是,此连接字符串会将您连接到服务器上的日志数据库,并且不会指定任何集合。我找不到有关在连接字符串中指定集合的任何信息(这是有道理的),那么如何告诉 MongoDB 接收器要写入哪个集合?
我在应用程序中添加了 SelfLog.Out = Console.Out,但我在输出 window 中没有看到任何对我有帮助的东西。
稍后:我将一个名为 "log" 的集合添加到我的数据库中,Serilog 正在写入该集合。所以看起来 "log" 被烘焙到驱动程序中。我想要这个特定数据库的两个不同的日志。所以我的问题仍然存在。有办法吗?
下载源码,在MongoDBLoggerConfigurationclass构造函数的签名中添加一个集合参数。更改后的代码标有**。
public static LoggerConfiguration MongoDB(
this LoggerSinkConfiguration loggerConfiguration,
string databaseUrl,
**string collectionName = null,**
LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum,
int batchPostingLimit = MongoDBSink.DefaultBatchPostingLimit,
TimeSpan? period = null,
IFormatProvider formatProvider = null)
{
if (loggerConfiguration == null) throw new ArgumentNullException("loggerConfiguration");
if (databaseUrl == null) throw new ArgumentNullException("databaseUrl");
var defaultedPeriod = period ?? MongoDBSink.DefaultPeriod;
return loggerConfiguration.Sink(
new MongoDBSink(
databaseUrl,
batchPostingLimit,
defaultedPeriod,
formatProvider,
**collectionName ??** MongoDBSink.DefaultCollectionName,
new CreateCollectionOptions()),
restrictedToMinimumLevel);
}