A Serilog sink that writes events as documents to MongoDB.
Package - Serilog.Sinks.MongoDB Platforms - .NET 4.7.2, .NET 6.0, .NET Standard 2.1
.MongoDBBson()
extensions. Existing .MongoDB()
extensions will continue to work converting logs to Json and then to Bson.Install the sink via NuGet Package Manager Console:
Install-Package Serilog.Sinks.MongoDB
or via the .NET CLI:
dotnet add package Serilog.Sinks.MongoDB
In the examples below, the sink is writing to the database logs
with structured Bson. The default collection name is log
, but a custom collection can be supplied with the optional CollectionName
parameter. The database and collection will be created if they do not exist.
using Serilog; // use BSON structured logs var log = new LoggerConfiguration() .WriteTo.MongoDBBson("mongodb://mymongodb/logs") .CreateLogger(); log.Information("This is a test log message");
// capped collection using BSON structured logs var log = new LoggerConfiguration() .WriteTo.MongoDBBson("mongodb://mymongodb/logs", cfg => { // optional configuration options: cfg.SetCollectionName("log"); cfg.SetBatchPeriod(TimeSpan.FromSeconds(1)); // create capped collection that is max 100mb cfg.SetCreateCappedCollection(100); }) .CreateLogger();
// create sink instance with custom mongodb settings. var log = new LoggerConfiguration() .WriteTo.MongoDBBson(cfg => { // custom MongoDb configuration var mongoDbSettings = new MongoClientSettings { UseTls = true, AllowInsecureTls = true, Credential = MongoCredential.CreateCredential("databaseName", "username", "password"), Server = new MongoServerAddress("127.0.0.1") }; var mongoDbInstance = new MongoClient(mongoDbSettings).GetDatabase("serilog"); // sink will use the IMongoDatabase instance provided cfg.SetMongoDatabase(mongoDbInstance); cfg.SetRollingInternal(RollingInterval.Month); }) .CreateLogger();JSON (Microsoft.Extensions.Configuration)
Keys and values are not case-sensitive. This is an example of configuring the MongoDB sink arguments from Appsettings.json:
{ "Serilog": { "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Error", "System": "Warning" } }, "WriteTo": [ { "Name": "MongoDBBson", "Args": { "databaseUrl": "mongodb://username:password@ip:port/dbName?authSource=admin", "collectionName": "logs", "cappedMaxSizeMb": "1024", "cappedMaxDocuments": "50000", "rollingInterval": "Month" } } ] } }
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4