--- title: "Read the Lasernet Keep Logs" slug: "read-keep-logs" description: "How to read and understand the Keep logs." updated: 2026-03-16T14:29:55Z published: 2026-03-16T14:29:55Z canonical: "kb.lasernetgroup.com/read-keep-logs" --- > ## Documentation Index > Fetch the complete documentation index at: https://kb.lasernetgroup.com/llms.txt > Use this file to discover all available pages before exploring further. # Read the Lasernet Keep Logs 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](/v1/docs/read-keep-logs#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?](/v1/docs/how-do-i-turn-debug-logging-mode-on-or-off-keep). ## View the Logs The Keep logs are written to the following [default locations](/v1/docs/where-is-keep-installed). ****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. ```plaintext 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. ```plaintext 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: ```plaintext pdm.common.frontend.servlet.DownloadDocumentServlet ``` - At the end of the error line, look for the exception error. In this case, an exception in `DownloadDocumentServlet`: ```plaintext 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: ```plaintext 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.