CerberusClientLogging 1.0.15
See the version list below for details.
dotnet add package CerberusClientLogging --version 1.0.15
NuGet\Install-Package CerberusClientLogging -Version 1.0.15
<PackageReference Include="CerberusClientLogging" Version="1.0.15" />
paket add CerberusClientLogging --version 1.0.15
#r "nuget: CerberusClientLogging, 1.0.15"
// Install CerberusClientLogging as a Cake Addin #addin nuget:?package=CerberusClientLogging&version=1.0.15 // Install CerberusClientLogging as a Cake Tool #tool nuget:?package=CerberusClientLogging&version=1.0.15
Simple Logging Client
Issue:
Logging can be a challenging task to standardize, especially for newer developers. Incorrectly logged information can result in missing items when troubleshooting. Additionally, logging operations can consume significant resources, potentially allocating up to 10% of the system's resources when parsing objects to be stored in a tabular database.
Solution:
The Simple Logging Client offers a streamlined approach to logging, providing a consistent structure for various logging scenarios. It simplifies the process by creating a signature for different logging operations and offers the following capabilities:
Application:
- Log: For logging application-related events.
- Error: For logging application errors.
External Transaction:
- Transaction: For logging external transactions.
- Error: For logging errors in external transactions.
Internal Transactions:
- Transaction: For logging internal transactions within the application.
- Error: For logging errors in internal transactions.
Message Queues:
- Messages: For logging messages related to message queues.
- Error: For logging errors related to message queues.
Relational Databases:
- Transaction: For logging transactions in relational databases.
- Error: For logging errors related to relational databases.
Design:
Fig. 1. Simple Logging Client Design. An application references SimpleLoggingClient and sets up the required queue information (Username/Password). Logging is handled as a single object to be used with dependency injection (DI). The log/error is sent to the designated queue. Another application, currently under development, will gather messages from the queue. The logic path for handling the messages will be determined by their type. The messages will then be divided into transactions and stored in the appropriate database tables.
The design follows a modular approach, allowing for scalability and flexibility in handling different logging scenarios. The Simple Logging Client acts as a bridge between the application and the logging infrastructure, ensuring standardized logging operations.
Please note that the separate application mentioned in the design is currently in development and will be responsible for processing and storing the logged messages from the queue.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. 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. |
-
net7.0
- Azure.Core (>= 1.32.0)
- Azure.Messaging.ServiceBus (>= 7.15.0)
- Azure.Storage.Common (>= 12.16.0-beta.1)
- Azure.Storage.Queues (>= 12.15.0-beta.1)
- cerberus-logger-interface (>= 1.0.26)
- Microsoft.Extensions.Configuration.Abstractions (>= 8.0.0-preview.4.23259.5)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0-preview.4.23259.5)
- Moq (>= 4.18.4)
- NETCore.RabbitMQKit (>= 2.0.0)
- Newtonsoft.Json (>= 13.0.3)
- NUnit (>= 3.13.3)
- RabbitMQ.Client (>= 6.5.0)
- System.Configuration.ConfigurationManager (>= 8.0.0-preview.4.23259.5)
- System.Data.SqlClient (>= 4.8.5)
- System.Diagnostics.EventLog (>= 8.0.0-preview.4.23259.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.