This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Repository files navigation

Central Logging Service * these docs are not complete *

What is this?

The central logging service is an all in one solution for storing log messages in a standard format in one location from distributed .NET systems known here as Publishing Systems. The system also includes a windows service which monitors the log message database and sends alerts to users as defined by dynamic rules setup via a built-in front-end.

CLS Admin Dashboard Image

User Alerts

Users can setup alerts via the front end, these alerts are completely customisable using the alert query builder shown in the Setting up an Alert section. An usage example here is that a certain user may want to be notified whenever a particular service logs an error, this can be extended to whenever a particular service logs an error at a certain time, certain day of the week, in a certain staging environment etc etc. For a full list of options see the Alert Options Breakdown section.

Setting up an Alert

1. Register a subscriber

Navigate to the subscribers page then click + New Subscriber and you'll be presented with the following form to complete: register subscriber form

2. Creating the Alert

Navigate to the alerts page then click + New Alert and you'll be presented with the following form to complete, I've filled out the one below with an example scenario whereby we want to be alerted when any Publishing System sends an error into the database between 1am and 3am:

create alert form

3. Receiving an Alert

You'll receive an email whenever the criteria of the alert are met and it'll look something like this:

Alert Email Image

4. Alert History

You'll notice that on the email you receive there is a link at the bottom which will take you to a page where you can view a breakdown of the alert that happened.

Alert History Page

Alert Options Breakdown

Alert Type NameDescription
TimeOfDayThe time of day that the log message arrived into the database
MessageSeverityThe severity of the log message, can be Debug, Info, Warn, Error or Fatal
PublishingSystemNameThe name of the system that logged the message
EnvironmentTypeThe staging environment of the publishing system that logged the message, can be DEV, SIT, UAT or LIVE.
NumberOfMessages(To be used in conjunction with TimeWindowMinutes) This allows the user to be alerted when a number of messages are logged in a certain window of time e.g. 100 messages in 5 minutes.
TimeWindowMinutesSee NumberOfMessages description above.
DayOfWeekThe day of the week that the message was logged.

Development Requirements

  • Visual Studio 2017
  • .NET Framework 4.7.2
  • Microsoft SQL Server 2016 or higher
  • Email account to send alerts (project is configured for gmail initially, you can create a new gmail account for use with this application to get up and running fast, then set the gmail account to be compatible with "less-safe apps" or alternatively use an email from microsoft, yahoo or your own domain).

Software Stack

  • Web Frontend - .NET Framework MVC, JavaScript, JQuery, CSS.
  • Rest of the Solution is .NET Framework 4.7.2.

Getting up and running fast for development

  1. Create a (preferably) empty SQL Server database,
  2. Clone the solution in Visual Studio,
  3. Right click the solution & click "Restore NuGet Packages" then Press F6 to build the solution,
  4. Right click CLS.DatabaseGenerator & click "Set as Startup Project",
  5. Navigate to the App.config in the CLS.DatabaseGenerator project and edit the connection string to point at the database you created in step 1,
  6. Run the database manager and it will create the tables & metadata in your target database,

7a. Navigate to the CLS.Core project and open the App.config file and edit the following:

<connectionStrings>
<add name="CLSDbEntities" connectionString="metadata=res://*/Data.CLSDbModel.csdl|res://*/Data.CLSDbModel.ssdl|res://*/Data.CLSDbModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

7b. Particularly this part:

connection string=&quot;data source=(LocalDb)\CentralLoggingService;initial catalog=CentralLoggingService;integrated security=True;

7c. Keeping the formatting, edit it to point at the database you created in step 1,
8. Right click the solution and click properties and set the startup projects as shown: project setup example

  1. Copy & paste the <ConnectionStrings> section you configured from the CLS.Core project and replace the existing <ConnectionStrings> sections in the App/Web.config files in the projects which will run at start up (seen in screenshot above),
  2. Run the projects with 'F5'.

Solution Breakdown (Development)

ConceptSolution Project
Database CreationCLS.DatabaseGenerator
Log Message DispatcherCLS.SenderConsole
Alerts EngineCLS.WindowsServiceConsole
Web Front EndCLS.Web

Database Creation

The CLS.DatabaseGenerator will allow you to quickly get up and running with the solution, it must be run before anything else to create the required objects & static data in the database.

Log Message Dispatcher

The CLS.SenderConsole will periodically send randomised log messages into the target database in order to aid in development. In production, the CLS.Sender is simply a library which will be inclduded in the systems you want to log from.

Alerts Engine

The CLS.WindowsServiceConsole will run as a background process, periodically scanning the messages which have been sent into the database to see if any subscribed users should be alerted.

Web Front End

The CLS.Web project is the front end for both development & production and can be published as such.

About

All-in-one solution for standardised logging into a central database from distributed systems, includes a dynamic email dispatcher & web front end.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages