Home

Awesome

Analogy Log Server Codacy Badge

<p align="center">

.NET Core Desktop <img src="https://img.shields.io/github/issues/Analogy-LogViewer/Analogy.LogViewer.gRPCLogServer" alt="Issues" /> </a> GitHub closed issues <a href="https://github.com/Analogy-LogViewer/Analogy.LogViewer.gRPCLogServer/blob/master/LICENSE.md"> <img src="https://img.shields.io/github/license/Analogy-LogViewer/Analogy.LogViewer.gRPCLogServer" alt="License" /> </a>

</p>

gRPC Log Server (Windows Services) to receive and then forward messages to Analogy Log Viewer.

Analogy Log server supports the following real time data:

The following modules exists:

NugetVersionDescription
Analogy.LogViewer.gRPCNugetPrimary Analogy Log Viewer grRPC providers
Analogy.LogServerNugetA windows Service for receiving logs
Analogy.LogServer.ClientsNugetgRPC client to pull back messages from Analogy Service
Analogy.AspNetCore.LogProviderNugetAspNetCore Logger provider
NLog TargetNugetNLog target to stream logs to Analogy
Serilog SinkNugetSerilog Sink for sending logs to Analogy

There are, currently, 4 types of gRPC clients:

Data ProviderNuget Version
NLog TargetNLog target to stream logs to Analogy
Serilog SinkSerilog Sink for sending logs to Analogy
Analogy.AspNetCore.LogProviderCustom logging provider in Asp.Net Core that write logs to Analogy
Python LoggingPython gRPC client logger that sends logs to Analogy

Windows Service:

Example

With Analogy Log server you can stream log messages from any Supported languages and have them saved in a log files and view in real time using Analogy Log Viewer.

Usage

Once you have setup Analogy Log Server you can start sending messages to it:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     autoReload="true"
     internalLogLevel="warn">

 <extensions>
   <add assembly="NLog.Web.AspNetCore"/>
   <add assembly="Analogy.LogViewer.NLog.Targets"/>
 </extensions>

 <targets>
   <!-- write logs to file  -->
   <target xsi:type="File" name="allfile"
       fileName="c:\KALPA\logs\${processname:fullName=false}-KX.nlog"
       layout="${longdate}|${uppercase:${level}}|${logger}|${message}${exception:format=tostring}|${processname:fullName=false}|${processid}"
       keepFileOpen="false"
       archiveFileName="c:\KALPA\logs\${processname:fullName=false}-KX-${shortdate}.{##}.nlog"
       archiveNumbering="Sequence"
       archiveEvery="Day"
       maxArchiveFiles="100"
       archiveAboveSize="30000000">
   </target>
   <!-- write logs to Analogy Log Server  -->
   <target xsi:type="NlogAnalogyGRPCTarget" name="NLogToAnalogyGRPCTarget"
           layout="${longdate}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|${processname:fullName=false}|${processid}">
     <contextproperty name="MachineName" layout="${machinename}" />
     <contextproperty name="ThreadId" layout="${threadid}"/>
     <contextproperty name="ProcessId" layout="${processid}" />
     <contextproperty name="callsite" layout="   ${callsite:className=true:fileName=true:includeSourcePath=true:methodName=true}" />
     <contextproperty name="ProcessName" layout="${processname:fullName=false}" />
   </target>
 </targets>

 <rules>
   <logger name="*" minlevel="Trace" writeTo="allfile" />
   <logger name="*" minlevel="Trace" writeTo="NLogToAnalogyGRPCTarget" />
 </rules>
</nlog>

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
 {
     loggerFactory.AddAnalogyLogger(new AnalogyLoggerConfiguration
     {
         LogLevel = LogLevel.Trace,
         EventId = 0,
         AnalogyServerUrl = "http://localhost:6000"
      });
     }

you can see forbbiden port by running:

netsh interface ipv4 show excludedportrange protocol=tcp