Read the Keep Logs
    • 16 Mar 2026
    • 3 Minutes to read
    • Contributors
    • PDF

    Read the Keep Logs

    • PDF

    Article summary

    If you have problems with the Keep server, the first place to check is in the logs. You can use any text editor to view the logs. You can also put Keep into debug logging mode. For full details, see How Do I Turn Debug Logging Mode On or Off?.

    View the Logs

    The Keep logs are written to the following default locations.

    Lasernet Keep 11.1 and Later

    • Standalone servers: C:\Program Files\Lasernet\Lasernet Keep\Server_11.<minor version> - <node name>\wildfly-<version number>.Final\standalone\log.

    • Clustered servers: C:\Program Files\Lasernet\Lasernet Keep\Server_11.<minor version> - <cluster name> - <cluster role> - <node name>\wildfly-<version number>.Final\domain\log.

    Lasernet Keep 11.0

    • Standalone servers: C:\Program Files\Formpipe Software\Lasernet Keep\Server_11.0 - <node name>\wildfly-<version number>.Final\standalone\log.

    • Clustered servers: C:\Program Files\Formpipe Software\Lasernet Keep\Server_11.0 - <cluster name> - <cluster role> - <node name>\wildfly-<version number>.Final\domain\log.

    Open and monitor the logs using your preferred tools. By default, up to 210 MB of logs are retained.

    Understand Log Messages

    Keep uses a standard Log4j format, where each message has multiple columns.

    2026-03-14 13:26:30 - (http--0.0.0.0-8100-2   ) -  - [pdm.userservice.ejb.session.UserAdminSessionFacadeEJB                 ] DEBUG - Getting UserEntity for username: danielk

    The following table describes the contents of each column:

    Column 1

    Column 2

    Column 3

    The time and date stamp on the Keep server.

    Shows the following information:

    • Where the connection is from (HTTP or HTTPS).

    • The port used.

    • The thread ID. The entire string is included as a thread name so that you can follow each request end to end.

    After the double dash, column 3 shows the message category.

    The category list is set out in standalone.xml. By default, logging is set to INFO. To change the logging level, look in the node.properties file. In the Logging section, you can enable the preconfigured DEBUG logging level for each category.

    After the category (column 3), the debug logging level of a message is shown. You can configure the following logging levels for categories in the node.properties file:

    • TRACE - The most detailed logging level. Not all categories support TRACE debugging.

    • DEBUG - The ideal logging level for investigating issues, as it provides enough detail to debug most problems.

    • INFO - The standard logging level. It provides very basic information about what is happening.

    • WARN - Shows any issues that do not cause component failure.

    • ERROR - Error messages highlight severe issues in Keep that need investigation.

    Only logging messages at the level set in the category, or lower, are written to the output. For example, if the DEBUG property is set in node.properties, then the log file will output DEBUG, INFO, WARN, and ERROR levels.

    Read Stack Traces

    When an error occurs while Keep is running, a stack trace is written to the log file to help identify and resolve the issue. For example, this stack trace shows a connection issue when running the DownloadDocumentServlet servlet.

    2026-03-14 13:27:39 - (http--0.0.0.0-8100-1   ) -  - [pdm.common.frontend.servlet.DownloadDocumentServlet                   ] ERROR - Exception in DownloadDocumentServlet: ClientAbortException:  java.net.SocketException: Connection reset by peer: socket write error
    	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:403)
    	at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449)
    	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
    	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:426)
    	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:415)
    	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
    	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1384)
    	at org.apache.commons.io.IOUtils.copy(IOUtils.java:1357)
    	at com.efstech.pdm.common.frontend.servlet.DownloadDocumentServlet.doGet(DownloadDocumentServlet.java:133)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
    	at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
    	at com.efstech.pdm.common.frontend.filter.cache.PageExpirationFilter.doHttpFilter(PageExpirationFilter.java:39)
    	at com.efstech.pdm.common.frontend.filter.BaseHttpFilter.doFilter(BaseHttpFilter.java:28)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
    	at com.efstech.pdm.common.frontend.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:80)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
    	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489)
    	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
    	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_07]
    Caused by: java.net.SocketException: Connection reset by peer: socket write error
    	at java.net.SocketOutputStream.socketWrite0(Native Method) [rt.jar:1.7.0_07]
    	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) [rt.jar:1.7.0_07]
    	at java.net.SocketOutputStream.write(SocketOutputStream.java:153) [rt.jar:1.7.0_07]
    	at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:724)
    	at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449)
    	at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
    	at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:748)
    	at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
    	at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:559)
    	at org.apache.coyote.Response.doWrite(Response.java:594)
    	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:398)

    When a stack trace appears in the log file, there are a couple of key elements that identify what has happened and where. In the following example, a user tried to download a document from the front-end, but closed the connection before the download completed, resulting in an error.

    • At the start of the stack trace, the category identifies the process or engine within Keep that has output the error. In this case, the error occurred on the front-end when trying to download a document:

      pdm.common.frontend.servlet.DownloadDocumentServlet
    • At the end of the error line, look for the exception error. In this case, an exception in DownloadDocumentServlet:

      ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error

      An exception may appear in combination with a Caused by line within the stack trace:

      Caused by: java.net.SocketException: Connection reset by peer: socket write error

    Many different errors may appear in the logs. They should all have associated stack traces to help you resolve issues.