globe with meridians Sprache: Deutsch · English

open book Exception Logging

Getrennte Stacktrace-Logs – business/internal, HashCode-Zuordnung und Log-Rotation.

REFERENZ ADMINISTRATOR STAND: JUL 2026 GILT FUER NUCLOS 4.2026.X

Auf dieser Seite

Exceptions an den Client enthalten keinen Stacktrace/Cause mehr – diese werden serverseitig gesondert gesichert. RuntimeExceptions werden zu einer neutralen InternalErrorException mit einem HashCode, über den sich der Original-Stacktrace im Log wiederfinden lässt. BusinessExceptions gehen (ohne Stacktrace) mit allen nötigen Extras (InputRequired, FieldValidation) an den Client.

stacktrace-business.log

Reduzierte Stacktraces der BusinessExceptions (Infrastruktur-Zeilen von Nuclos/Spring/Java/Tomcat werden weggelassen):

2020-06-24 08:29:40 - null

org.nuclos.api.context.InputRequiredException: null

at extension.nuclet.test.rules.TestInputRequiredExceptionExtension.doInputMemo(TestInputRequiredExceptionExtension.java:198) ~[nuclos-integration-tests-rules-4.43.0-SNAPSHOT.jar:?]

at extension.nuclet.test.rules.TestInputRequiredExceptionExtension.doInputRequired(TestInputRequiredExceptionExtension.java:53) ~[nuclos-integration-tests-rules-4.43.0-SNAPSHOT.jar:?]

at extension.nuclet.test.rules.TestInputRequiredExceptionExtension.custom(TestInputRequiredExceptionExtension.java:34) ~[nuclos-integration-tests-rules-4.43.0-SNAPSHOT.jar:?]

stacktrace-internal.log

Voller Stacktrace aller übrigen (Runtime-)Exceptions. Jeder Eintrag beginnt mit dem HashCode #, der auch im Client angezeigt wird:

#-22567581 2020-06-24 09:17:21

java.lang.NullPointerException: null

at org.nuclos.server.eventsupport.ejb3.EventSupportFacadeBean.createBusinessObject(EventSupportFacadeBean.java:1855) ~[nuclos-server-4.43.0-SNAPSHOT.jar:?]

at org.nuclos.server.eventsupport.ejb3.EventSupportFacadeBean.executeUpdateSupportEvent(EventSupportFacadeBean.java:1555) ~[nuclos-server-4.43.0-SNAPSHOT.jar:?]

at org.nuclos.server.eventsupport.ejb3.EventSupportFacadeBean.fireSaveEventSupport_aroundBody62(EventSupportFacadeBean.java:2183) ~[nuclos-server-4.43.0-SNAPSHOT.jar:?]

at org.nuclos.server.eventsupport.ejb3.EventSupportFacadeBean$AjcClosure63.run(EventSupportFacadeBean.java:1) ~[nuclos-server-4.43.0-SNAPSHOT.jar:?]

at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:66) ~[spring-aspects-4.3.17.RELEASE.jar:4.3.17.RELEASE]

...

Der zugehörige Eintrag im server.log:

2020-06-24 09:17:21,916 WARN [org.nuclos.server.common.NuclosRemoteInvocationExecutor] - InternalError '#-22567581 2020-06-24 09:17:21': java.lang.NullPointerException

Log-Rotation

Die Dateien rotieren stündlich; aufbewahrt werden max. 8 stacktrace-business- bzw. 512 stacktrace-internal-Dateien. Anpassbar in conf/log4j2.xml:

    <RollingFile name="StacktraceBusiness" fileName="${server.home}/logs/stacktrace-business.log"
        filePattern="${server.home}/logs/stacktrace-business-%d{yyyy-MM-dd-hh}.log.gz"
        append="true">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} - %m%n"/>
      <Policies>
        <TimeBasedTriggeringPolicy filePattern="${server.home}/logs/stacktrace-business-%d{yyyy-MM-dd-hh}.log.gz" />
      </Policies>
      <DefaultRolloverStrategy max="8"/>
    </RollingFile>
    <RollingFile name="StacktraceInternal" fileName="${server.home}/logs/stacktrace-internal.log"
        filePattern="${server.home}/logs/stacktrace-internal-%d{yyyy-MM-dd-hh}.log.gz"
        append="true">
      <PatternLayout pattern="%m%n"/>
      <Policies>
        <TimeBasedTriggeringPolicy filePattern="${server.home}/logs/stacktrace-internal-%d{yyyy-MM-dd-hh}.log.gz" />
      </Policies>
      <DefaultRolloverStrategy max="512"/>
    </RollingFile>

Installer & altes Verhalten

Der Installer setzt conf/log4j2.xml zurück. Für dauerhafte Änderungen die Datei nach extensions/conf kopieren. Um wieder alles ins server.log zu schreiben, an den Stacktrace-Loggern additivity="true" setzen.

Verwandte Seiten

gear Logging


Übersicht.

Öffnen →

gear SQL Logging


SQL.

Öffnen →

  • Keine Stichwörter