ToreAurstadIT.RollingSvcLogger 1.4.0

dotnet add package ToreAurstadIT.RollingSvcLogger --version 1.4.0                
NuGet\Install-Package ToreAurstadIT.RollingSvcLogger -Version 1.4.0                
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="ToreAurstadIT.RollingSvcLogger" Version="1.4.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ToreAurstadIT.RollingSvcLogger --version 1.4.0                
#r "nuget: ToreAurstadIT.RollingSvcLogger, 1.4.0"                
#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 ToreAurstadIT.RollingSvcLogger as a Cake Addin
#addin nuget:?package=ToreAurstadIT.RollingSvcLogger&version=1.4.0

// Install ToreAurstadIT.RollingSvcLogger as a Cake Tool
#tool nuget:?package=ToreAurstadIT.RollingSvcLogger&version=1.4.0                

ToreAurstadIT.Logger - RollingXmlWriterTraceListener

Build new releases with command:

   nuget.exe pack -IncludeReferencedProjects -properties Configuration=Release

Denne løsningen inneholder en tilpasset logger for SVCLOG filer (.svclog) som viser svclogs.

Denne rullerer slik at filstørrelsen på hver aktive .svclog fil holdes nede. Eksempel på config setting er denne brukt i SomeAcme:


<system.diagnostics>
    <sources>
      <source name="System.IdentityModel" switchValue="Warning" logKnownPii="false">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging" logKnownPii="false" switchValue="Warning">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="Microsoft.IdentityModel" switchValue="Warning">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
       
      
      <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\temp\SomeAcmeWAS.svclog" />
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>


Bemerk switchValue lik "Warning" her. Vi ønsker ikke "Information", siden det vil sende alt for mye informasjon til svclog. Kun "Warning" skal benyttes for switchValue .

Her RollingXmlWriterTracerListener kommentert ut og man bruker standard System.Diagnostics.XmlWriterTraceListener. Her så er en oppdatert config for SomeAcme som tar i bruk RollingXmlWriterTraceListener:


<system.diagnostics>
    <sources>
      <source name="System.IdentityModel" switchValue="Warning" logKnownPii="false">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging" logKnownPii="false" switchValue="Warning">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="Microsoft.IdentityModel" switchValue="Warning">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>
    <sharedListeners>
      
      
      <add type="ToreAurstadIt.Logger.RollingDateXmlWriterTraceListener, ToreAurstadIT.RollingSvcLogger" name="xml" initializeData="C:\svclogs\SomeAcmeTraceLog.svclog" MaxTraceFileSize="104857600" /> 
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>


I configen ovenfor så setter vi 1000 MB i størrelse via MaxTraceFileSize argumentet.

For å teste ut loggeren kan vi sette MaxTraceFileSize til en lav verdi, 300000 , 300 KB:


    <sharedListeners>
        
      
      <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\temp\SomeAcmeWAS_RollingLog.svclog" MaxTraceFileSize="300000" />  
    </sharedListeners>

Dette vil gi oss en rullerende logg med maks 300 KB i hver fil , hvor hver enkelt .svclog fil holdes nede i størrelse. Det er kun den .svclog fila som er i bruk som er låst av prosessen som bruker loggen. Dette gjør det lettere for ToreAurstadIT-Drift å holde logg størrelsen nede i størrelse.

Den rullerende loggen setter opp flere filer med konfigurert maks størrelse. Dette gjør det lettere å holde kontroll på svclogs filene.

Svclog files in dir

For ToreAurstadIT Drift bør feks 1 GB være en grei innstilling. Samtidig er jo kanskje 100 MB også en grei innstilling hvis man vil ha raskere svclog filer å lese ut.

100 MB :


    <sharedListeners>
      
      <add type="ToreAurstadIT.Logger.RollingXmlWriterTraceListener, ToreAurstadIT.Logger" name="xml" initializeData="C:\svclogs\SomeAcmeTraceLog.svclog" MaxTraceFileSize="104857600" /> 
      
    </sharedListeners>

1 GB :


    <sharedListeners>
      
      
      <add type="ToreAurstadIT.Logger.RollingXmlWriterTraceListener, ToreAurstadIT.Logger" name="xml" initializeData="C:\svclogs\SomeAcmeTraceLog.svclog" MaxTraceFileSize="1048576000 " /> 
      
    </sharedListeners>

Bemerk - ved sletting av enkeltvise .svclog filer så må applikasjonsloggen recycles rett etterpå for å unngå feil i loggingen, hvis man sletter den .svclog fila med høyeste nummer. I tillegg bør man unngå slette den tomme .svclog filen som dukker opp med konfigurert filnavn i initializeData og den som er nummerert 0000 .

Det anbefales å sette opp 500 MB default i maks fil størrelse før man rullerer over på neste fil, dette for å sørge for at .svclog filene holdes nede i størrelse og er noenlunde håndterlige å åpne i SvcTraceViewer i utviklingsmiljø.

Denne .svclog filen feks viser en feil (Error) som har skjedd i en .svclog ved at man åpner loggen i Svc Trace Viewer. Dette verktøyet får man ved å laste ned Windows SDK. Kryss for å få med verktøyet når du installerer Windows SDK.

Svclog files in dir

Sist oppdatert :

06.10.2023

Tore Aurstad tore.aurstad@ToreAurstadIT.no Senior Systemutvikler ToreAurstadIT SU

Product Compatible and additional computed target framework versions.
.NET Framework net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.4.0 190 10/8/2023