-
Notifications
You must be signed in to change notification settings - Fork 44
Providers info
Note: please check Samples and Tests in the repository for additional examples on all configuration options.
They can be configured for the following providers:
- MsSqlServerProvider
- MySqlProvider (MariaDB sink only)
- PostgreSqlProvider
MongoDb exposes additional columns in the Properties info. RavenDb sink don't expose a way to customize columns.
Create a custom LogModel class that inherits from the Provider Log Model (you can find each model down below, as a constraint on the provider extension methods that accept a generic parameter).
To remove default properties
Currently the columns that can be removed are the Exception and the Properties fields. To remove them, override the desired property/ies in the custom LogModel and apply it/them the Serilog.Ui.Core.Attributes.RemovedColumn
attribute.
** To add properties**
Register any property on the custom LogModel. Currently, the UI offers a specific render for the following property types:
- bool
- DateTime
- Code type (JSON, XML)
- string (default rendering)
To register a code-type column, add the _Serilog.Ui.Core.AttributesCodeColumn(codeType: CodeType)_
attribute on the property, specifying the type of code to parse (you can choose between JSON and XML).
** Register the provider using the extension method, providing as T your custom LogModel. **
That's it, your additional columns are configured for view in the client app!
Note: the Samples.WebApi project offers a real example on adding additional columns.
// namespace Serilog.Ui.ElasticSearchProvider.Extensions
ISerilogUiOptionsBuilder UseElasticSearchDb(this ISerilogUiOptionsBuilder optionsBuilder, Action<ElasticSearchDbOptions> setupOptions);
// namespace Serilog.Ui.MongoDbProvider.Extensions
ISerilogUiOptionsBuilder UseMongoDb(this ISerilogUiOptionsBuilder optionsBuilder, Action<MongoDbOptions> setupOptions);
// namespace Serilog.Ui.MsSqlServerProvider.Extensions
ISerilogUiOptionsBuilder UseSqlServer(this ISerilogUiOptionsBuilder optionsBuilder,
Action<RelationalDbOptions> setupOptions,
Func<string, DateTime>? = null)
ISerilogUiOptionsBuilder UseSqlServer<T>(this ISerilogUiOptionsBuilder optionsBuilder,
Action<RelationalDbOptions> setupOptions,
Func<string, DateTime>? = null) where T : SqlServerLogModel
// namespace Serilog.Ui.MySqlProvider.Extensions
/* using Serilog.Sinks.MySQL */
ISerilogUiOptionsBuilder UseMySqlServer(this ISerilogUiOptionsBuilder optionsBuilder, Action<RelationalDbOptions> setupOptions);
/* using Serilog.Sinks.MariaDB */
ISerilogUiOptionsBuilder UseMariaDbServer(this ISerilogUiOptionsBuilder optionsBuilder, Action<RelationalDbOptions> setupOptions);
ISerilogUiOptionsBuilder UseMariaDbServer<T>(this ISerilogUiOptionsBuilder optionsBuilder, Action<RelationalDbOptions> setupOptions) where T : MySqlLogModel;
// namespace Serilog.Ui.PostgreSqlProvider.Extensions
ISerilogUiOptionsBuilder UseNpgSql(this ISerilogUiOptionsBuilder optionsBuilder, Action<PostgreSqlDbOptions> setupOptions);
ISerilogUiOptionsBuilder UseNpgSql(this ISerilogUiOptionsBuilder optionsBuilder, Action<PostgreSqlDbOptions> setupOptions) where T : PostgresLogModel;
// namespace Serilog.Ui.RavenDbProvider.Extensions;
ISerilogUiOptionsBuilder UseRavenDb(this ISerilogUiOptionsBuilder optionsBuilder, Action<RavenDbOptions> setupOptions);