Hardwired.Logging.SqlLogger
1.0.4
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Hardwired.Logging.SqlLogger --version 1.0.4
NuGet\Install-Package Hardwired.Logging.SqlLogger -Version 1.0.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hardwired.Logging.SqlLogger" Version="1.0.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Hardwired.Logging.SqlLogger --version 1.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Hardwired.Logging.SqlLogger, 1.0.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Hardwired.Logging.SqlLogger as a Cake Addin #addin nuget:?package=Hardwired.Logging.SqlLogger&version=1.0.4 // Install Hardwired.Logging.SqlLogger as a Cake Tool #tool nuget:?package=Hardwired.Logging.SqlLogger&version=1.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Hardwired SQL Logger
<details> <summary>Configuring Sql Logger</summary>
There is two ways for configuring SQL Logger.
1. Configuration File
appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Trace",
"System": "Information",
"Microsoft": "Information"
},
"HardwiredLogging": {
"Schema": "logging",
"ConnectionString": "Data Source=[datasource];Initial Catalog=[database];Integrated Security=true;",
"LogLevel": "Information",
"LogTableLevel": "Information",
"SerializationMethod": "Json",
"UpdateDatabase" : true
},
"Console": {
"IncludeScopes": true
}
}
}
Building Configuration
_configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
Add Logging
serviceCollection.AddLogging(builder =>
{
builder.AddHardwiredSqlLogger(_configuration);
});
or
var configurationSection = _configuration
.GetSection("Logging")
.GetSection("HardwiredLogging");
serviceCollection.AddLogging(builder =>
{
builder.AddHardwiredSqlLogger(configurationSection);
});
2. Logger Provider Options
serviceCollection.AddLogging(builder =>
{
builder.AddHardwiredSqlLogger(config =>
{
config.ConnectionString = "Data Source=[datasource];Initial Catalog=[database];Integrated Security=true;";
config.LogLevel = LogLevel.Information;
config.Schema = "logging";
config.RetryCount = 3;
});
});
</details>
<details> <summary>Provider Options</summary>
ISqlLoggerProviderOptions
ConnectionString (string) : SQl server connection string
Schema (string) : Default schema for logging tables
LogLevel (enum) : Minimum log level for general logs
LogTableLevel (enum) : Minimum log level for model logs
SerializationMethod (enum) : Serialization method for model's complex properties
UpdateDatabase (bool) : Generate and execute sql commands for create or update tables
after starting
RetryCount (int) : Number of tries for inserting logs
</details>
<details> <summary>Model Logging</summary> Hardwired sql logger creates a table for each model that you want to log.
Model :
class RequestLogModel
{
public int Id { get; set; }
public string Title { get; set; }
[MaxLength(80)]
public string Address { get; set; }
public long Quantity { get; set; }
public List<string> Tags { get; set; }
}
Mapping :
builder.AddHardwiredSqlLogger(_configuration, option =>
{
option
.Map<RequestLogModel>("RequestLog")
.Map<VisitLogModel>("VisitLog");
});
Usage :
public class Business
{
private readonly ILogger _logger;
public Business(ILogger<Business> logger)
{
_logger = logger;
}
public void SampleMethod()
{
var model = new RequestLogModel()
{
Id = 1,
Title = "myTitle",
Address = "Tehran",
Quantity = 50,
Tags = new List<string>(){ "a","b","c" }
};
using (var scope = logger.BeginScope(model))
{
_logger.LogInformation("Request Received.");
}
}
}
Inserted Row :
Id | EventDateTime | SourceType | LoggerId | EventId | LogLevel | Message | ItemId | ItemTitle | ItemAddress | ItemQuantity | ItemTags |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2019-12-12 01:26:00 | Business | e7aa056a-7f59-4921-9584-90bcc7f3fd2f | 0 | Information | Request Received. | 1 | myTitle | Tehran | 50 | ["a","b","c"] |
</details>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 2.0.0)
- Microsoft.Extensions.Logging (>= 2.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 2.0.0)
- Microsoft.Extensions.Logging.Configuration (>= 2.0.0)
- Newtonsoft.Json (>= 11.0.1)
- System.ComponentModel.Annotations (>= 4.7.0)
- System.Data.SqlClient (>= 4.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.