Loggning

Felsökning & diagnos 18 september 2020
För felloggning i våra system används NLog och i äldre versioner av JS/Io/CP används log4net.NLogNLog har körts från start i Rebnis kassa och från oktober 2020 i övriga program, JS (2020.2), Io (3.1), CP (4.0).Loggfiler är inställda att sparas till C:\ProgramData\Rebnis\Logs\<Systemnamn>\<Programnamn>-error.logLoggningsinställningar kan göras på två olika sätt, i de flesta fall finns en separat fil, NLog.config, men om den saknas så ligger det inbäddat i app.config (programfilsnamn.exe.config).ReglerDet är förberett med olika regler som syns först i filen, det är i dessa det styrs hur mycket som ska loggas.Som standard är regeln som skriver till errorFile aktiverad och loggar fel plus varningar, denna regel ska INTE ändras.FelsökningFör felsökningssyfte finns en inaktiverad debugFile som loggar allt till egen fil, programnamn-debug.log. Denna ska endast aktiveras om man behöver få mer loggning för att leta efter något problem.Sätt bara enabled="true" för regeln som skriver till debugFile så loggas allt, minLevel ska inte ändras.Notera att det inte finns någon level ALL i NLog, som det finns i log4net, så det ska inte ställas in, det kommer att krascha programmet snarare än att logga mera. Trace är lägsta nivå i NLog.Övriga reglerFör program som kan köras som console finns en coloredConsole som gör att all loggning visas i den.Så här ser regelsektionen ut med errorFile och coloredConsole aktiverade samt debugFile inaktiverad.<rules> <logger name="*" minlevel="Warn" writeTo="errorFile" /> <logger name="*" minlevel="Trace" writeTo="coloredConsole" /> <logger name="*" minlevel="Trace" writeTo="debugFile" enabled="false" /> </rules>TargetsMedan en regel styr hur mycket som ska loggas så styr en target hur/vart loggning ska göras, t.ex. till fil, console eller skickas som e-post. En regel hänvisar till en (eller flera) targets.Targets är förkonfigurerade och behöver normalt inte ändras.Som standard skapas max 10MB stora loggfiler och den gör max tio filer innan den börjar skriva över gamla filer. Om man av någon anledning skulle behöva få mer loggning än så, t.ex. vid felsökning under längre period, så kan man i debugFile-target ändra maxArchiveFiles till ett högre antal än tio för att få flera filer innan den börjar skriva över gamla.Skicka felmeddelanden via mailDet går att ställa in så att felmeddelanden skickas automatiskt via mail och detta kan göras i undantagsfall om det är något vi vill få direktrapportering på, exempelvis vid felsökning.För att aktivera det läggs följande regel till under rules<logger name="*" minlevel="Error" writeTo="mailer" />Notera att minLevel="Error" inte bör ändras för om man t.ex. skulle ställa ner den till Trace så skulle det ramla iväg tusentals mail varje dag och det är inte önskvärt.Lägg även in följande target under targets och ställ in lämpliga uppgifter.<target name="mailer" xsi:type="Mail" smtpServer="mail.server.url" smtpUserName="[email protected]" smtpPassword="mailPassword" smtpPort="25" enableSsl="false" smtpAuthentication="Basic" from="[email protected]" to="[email protected]" subject="Felmeddelande från programmet hos kunden" html="true" addNewLines="true" replaceNewlineWithBrTagInHtml="true" header="Ett fel har uppståt... ${newline}${newline}" body="${longdate} ${pad:padding=5:inner=${level:uppercase=true}} ${message}${onexception:${newline}${exception:format=tostring}}" />log4netVersioner av JS, CP, Io släppta innan september 2020 använder log4net för loggning och där är loggningsreglerna inbakade i app.config (programnamn.exe.config) och inställda som standard att logga in mappen Logs i samma mapp som programmet körs från. Som standard loggas varningar och fel men man kan aktivera utökad loggning genom att sätta om WARN till ALL under log4net/root/level<log4net> ...appenders, loggers osv... <root> <level value="WARN"/> <appender-ref ref="GeneralLog"/> <appender-ref ref="ConsoleAppender"/> </root> </log4net>
© 2026 Rebnis — Intern dokumentation