Support vertec.com

Logging

Logging in Vertec

Module: Leistung & CRM
Created: 22. April 2013
Updated: 7. Oktober 2020
Loggly neu auch mit Desktop App sowie Hinweis auf Restrict Session Process eingefügt

Das Vertec Logging protokolliert Informationen und Fehlermeldungen aller Vorgänge in und um Vertec (Vertec Apps, Vertec Addins, Vertec Service und Cloud Server). Jede Log-Information ist einem der folgenden Levels zugeordnet:

  • 10: Debug
  • 20: Info
  • 30: Warning
  • 40: Error
  • 50: Fatal

Alle Informationen ab Level 20 werden standardmässig protokolliert. Logeinträge mit dem Level 10 (Debug) werden nur geschrieben, wenn sie explizit eingeschaltet werden. Dafür gibt es sogeannte DebugCategories, welche in der Log-Section im Vertec.ini-File gesetzt werden (nur Vertec on premises).

Vertec legt dafür diverse Logfiles an, in welchen die verschiedenen Vorgänge aufgelistet werden. Es sind folgende Logfiles verfügbar:

Logfiles der Apps und Addins

Ist in der Log-Section im Vertec.ini-File kein LogFileFolder angegeben, werden diese Logfiles pro Client unter Benutzer\AppData\Roaming\Vertec angelegt. Ein einfacher Weg, diesen Ordner direkt aufzurufen, ist über den Befehl %appdata%.

  • Geben Sie %appdata% direkt in die Adressleiste des Windows Explorers ein, oder
  • Klicken Sie auf Start > Ausführen (oder Windows+R) und geben Sie %appdata% ein

Damit öffnet sich direkt der Ordner Anwendungsdaten des angemeldeten Benutzers. Die Logfiles werden in einem Unterordner abgelegt, welcher den Namen des Ordners trägt, in welchem das entsprechende Programm liegt. Wenn also die Programme im Ordner C:\Programme\Vertec liegen, so werden die Logfiles in %appdata%\Vertec zu finden sein.

LogfileLoggingWird bei Programmstart überschrieben
Vertec.Desktop.logVorgänge in der Desktop App sowie der LDAP AuthentisierungNein
Vertec.Cloud.log(Lokale) Vorgänge in der Cloud AppNein
VertecExceptions.logExceptions mit Stacktrace (wie bei detaillierten Fehlermeldungen)Nein
WordAddin.logVorgänge im Word AddinJa
ExcelAddin.logVorgänge im Excel AddinJa
OutlookAddin.logVorgänge im Outlook AddinJa
VertecShell.logVorgänge im Explorer AddinJa

Eigenes Logfile definieren

Sie können in der Log-Section im Vertec.ini-File einen eigenen LogFileName angeben. Vorgänge der Desktop App und der Cloud App werden dann in dieses File geloggt.

Dieses wird beim Programmstart nicht überschrieben, sondern alle Log-Informationen hinten angefügt.

Die maximale Grösse von Log-Dateien ist auf 1 MB beschränkt. Ältere Daten werden in Backup-Dateien 1-9 geführt (zum Beispiel: Vertec.Desktop.1.Log). Dieser Vorgang geschieht automatisch.

Logfiles der Services und Sessions

Ist in der Log-Section im Vertec.ini-File kein LogFileFolder angegeben, befinden sich diese Logfiles im Ordner C:\ProgramData\. Analog zum Ordner %appdata% (siehe oben) können Sie diesen Ordner direkt über %programdata% aufrufen.

Ist die Option Restrict Session Process in der [CloudServer] Section im Vertec.ini-File eingeschaltet, befinden sich die Logfiles Vertec.Session.log sowie Vertec.TaskRunner.log im Ordner C:\WINDOWS\system32\config\systemprofile\AppData\LocalLow.

Logfile Logging Wird bei Programmstart überschrieben
Vertec.log Vorgänge des Vertec Service Nein
Vertec.CloudServer.log Vorgänge des Vertec CloudServer sowie der LDAP Authentisierung Nein
Vertec.Session.log Vorgänge in den Sessions der Cloud Clients Nein
Vertec.TaskRunner.log Vorgänge der geplanten Aufgaben Nein

SQL Logging in die Datenbank

Alle oben genannten Logeinträge können zusätzlich systemweit in die Tabelle LOGDATA in der Datenbank geschrieben werden. Der Vorteil des SQL Loggings gegenüber den Logfiles ist, dass die Log-Outputs aller Clients zentral in der Datenbank gesammelt sind.

Im Abschnitt [Log] des Vertec.ini Files kann mit

SqlLogTable=True

das Logging in eine Tabelle namens LOGDATA aktiviert werden. Die Tabelle wird automatisch in der DB erstellt und enthält alle Log-Ausgaben, die auch in ein Logfile geschrieben würden.

Die Log-Tabelle LOGDATA enthält folgende Spalten:

LOGTIME

Datum und Zeit des Log-Eintrags

LOGCATEGORY

Log-Kategorie (interne Vertec Kennung der Log-Quelle)

LOGLEVEL

Log-Level. Debug, Info, Warning, Error oder Fatal.

LOGMESSAGE

der Text des Log-Eintrages

COMPUTER

der Rechner, von dem aus dieser Log-Eintrag gemacht wurde

LOGIN

der aktuelle Vertec User zum Zeitpunkt des Log-Eintrags

Die LOGDATA Tabelle wird bei einem Update gelöscht.

Loggen mittels Script

Die python Methode log übergibt die Informationen direkt an das Vertec Logging System. Diese werden gleich verarbeitet wie oben, also in das entsprechende Logfile und/oder als Einträge in die Datenbank geschrieben.

log(category: string, level: int, msg: string)

Log Message in Vertec Logging System.

  • Levels:
    • 10: Debug Log
    • 20: Info Log
    • 30: Warning Log
    • 40: Error Log
    • 50: Fatal Log
  • category: max 50 Zeichen
  • msg: max 1000 Zeichen

Beispielscript

Registriert als Event-Script auf Löschen.

# coding: windows-1252
#
#---Bezeichnung: EventLog:
#   Klassen: N
#   ObjectScript: N
#   ContainerScript: N
#   EventType: Kein
#   EventClass: To specify
#   EventMembers: To specify
#   ExtendedRights: N

import vtcapp

def main():
    #aktuell angemeldeter Benutzer
    vertecUserName = vtcapp.evalocl("Timsession.allInstances->first.login.asstring")
    #spezifiziere Kategorie
    logCategory = "ExampleCategory"
    #spezifiziere Level
    logLevel = 20
    #setze die Message zusammen
    logObjectType = argobject.eval("self->oclType.asstring")
    logObjectId = argobject.eval("boldid")
    vtcapp.log(logCategory,logLevel,"'%s' mit der ID '%i' gelöscht durch '%s'"  %(logObjectType,logObjectId,vertecUserName))
main()

Die Einträge im Script haben das Level 20, deshalb erscheinen sie automatisch im Logfile.

Werden die Einträge dem Level 10 zugeordnet, muss die Log-Section im Vertec.ini-File um die im Script spezifizierte Debug Kategorie vertec.ExampleCategory ergänzt werden, damit die Einträge gelistet werden.

Log Output an Loggly Dienst senden

Ab Vertec 6.4.0.9 ist es möglich, den Log Output aus den Server-basierten Vertec Prozessen (Vertec.CloudServer, Vertec.Session, Vertec.TaskRunner) und ab Vertec 6.4.0.12 auch aus der Vertec Desktop App an den Cloud-basierten Logger Dienst Loggly zu senden.

Dafür müssen folgende Werte im Vertec.ini File im Abschnitt [Log] gesetzt werden:

  • LogglyToken: Hier wird das kundenspezifische Loggly Token eingegeben. Ist dieser Wert gesetzt, wird der Log Output an Loggly gesendet, und zwar an die angegebene
  • LogglyUrl: Hier wird die gewünschte URL für Loggly angegeben. Falls nichts angegeben wird, wird der Output an ​https://logs-01.loggly.com/ gesendet.

Nach dem Setzen dieser Werte muss der Vertec.CloudServer neu gestartet werden.

Folgende Werte werden an Loggly gesendet:

  • hostName: Hostname des Rechners, auf dem der Prozess läuft.
  • level: Log-Level der Information (z.B. ERROR), siehe ganz oben in diesem Artikel
  • loggerName: Name des betroffenen Loggers (z.B. Vertec.TaskRunner.TaskScheduling.TaskScheduler)
  • message: Die eigentliche Log-Information
  • process: Name des betroffenen Prozesses (z.B. Vertec.TaskRunner)
  • timestamp: Zeitpunkt des Logeintrags im ISO-8601 Format

Der Kundenname aus den Lizenzinformationen wird als Tag mitgeschickt, sofern er zum Zeitpunkt des Logeintrags verfügbar ist (sehr früh im Aufstartprozess sind diese Informationen noch nicht vorhanden).

Versionen vor Vertec 5.4

In frühen Vertec Versionen wurde das Logging über einen Registry-Key gesteuert:

HKEY_LOCAL_MACHINE/Software/Vertec/Vertec

Dort gibt es zwei Werte:

  • LogFileName: Ist dort ein Pfad gesetzt, wird in dieses File geloggt.
  • DebugCategories: In der Grundeinstellung werden Info und Error Meldungen geloggt und so keine zu grossen Mengen an Logeinträgen generiert. Für spezielle Debugging-Zwecke kann hier eine Liste von Debug Categories angegeben werden (mit Komma getrennt), für welche zusätzliche Debuginformationen ins Logfile geschrieben werden.Mögliche Werte sind z.B vertec.dbmtim und vertec.sync.
LogFileName = c:vertec.log
DebugCategories = vertec.dbmtim, vertec.sync

Wenn Sie Vertec schon lange einsetzen, sind diese Werte bei Ihnen vielleicht noch aktiv. Sie können aber jederzeit auf die Standard Logfiles umstellen, indem Sie die entsprechenden Werte in den Abschnitt [Log] des Vertec.ini Files eintragen und die Registry-Einträge löschen.