Logging von jadice server in das Windows NT-EventLog

Vorbemerkungen:

  • Diese Anleitung bezieht sich auf jadice server 5.1.1.0
  • Es wird angenommen, dass jadice server unter C:\jadice-server-5.1.1.0 liegt. Die Pfade müssen ggf. angepasst werden.
  • In dieser Konfiguration wird jeder Eintrag, der in die Logdatei geschrieben wird, zu einem Eintrag im NT Event Log
  • Der Inhalt der Events hat das selbe Layout wie im Logfile

Konfiguration log4j

  • Download der Log4j-Distribution, passend zur in jeweiligen jadice server eingesetzten Version. Hier log4j 1.2.17: http://archive.apache.org/dist/logging/log4j/1.2.17/
  • Die dort befindlichen Dateien NTEventLogAppender.dll und NTEventLogAppender.amd64.dll in ein beliebiges neues Verzeichnis kopieren. (Hier: C:\jadice-server-5.1.1.0\log4j)
  • Neuer Eintrag in C:\jadice-server-5.1.1.0\server-config\logging\log4j-appenders.xml:

    Anpassungen in log4j-appenders.xml, Teil 1
    <appender name="EVENTLOG" class="org.apache.log4j.nt.NTEventLogAppender">
    		<param name="Source" value="jadice-server"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{ISO8601} %-5p [%x; %c{2}; %t]: %m%n" />
            </layout>
    </appender>

    Der 'value' unter 'Source' kann beliebig gewählt werden. Dieser muss aber mit dem Eintrag in die Registry (s.u.) gleich bleiben!

  • Ergänzen des Appenders ASYNC in selbiger Datei:

    Anpassungen in log4j-appenders.xml, Teil 2
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
    		<appender-ref ref="CONSOLE"/>
            <appender-ref ref="FILE"/>
    		<appender-ref ref="EVENTLOG" /> <!-- neuer Eintrag -->
    </appender>
  • DLLs in java.library.path aufnehmen, indem C:\jadice-server-5.1.1.0\wrapper\wrapper.conf ergänzt wird:

    Anpassungen in wrapper.conf
    wrapper.java.library.path.2=../log4j
    # Zählung muss fortlaufend zu den bisher vorhanden Einträgen sein!
    

    Ist dieser Eintrag fehlerhaft, startet jadice server nicht und wirft die Fehlermeldung java.lang.UnsatisfiedLinkError: no NTEventLogAppender in java.library.path

Konfiguration Windows

  • Neuen Schlüssel in Registry anlegen, Pfad: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\jadice-server
    jadice-server muss dabei dem oben gewählten Wert unter 'Source' entsprechen (s.o.)
  • Dort neue Zeichenfolge anlegen:
    • Name: EventMessageFile
    • Typ: REG_SZ
    • Daten: C:\jadice-server-5.1.1.0\log4j\NTEventLogAppender.amd64.dll oder C:\jadice-server-5.1.1.0\log4j\NTEventLogAppender.dll bei 32 Bit OS

Ergebnis

Weiterführende Links