Skip to main content
Skip table of contents

Logging - SuperSERVER

SuperSERVER logs information during its operation to the SuperSERVER logs directory (for example: C:\ProgramData\STR\SuperSERVER SA\logs if you installed SuperSERVER to the default location):

  • The settings for SuperSERVER logging are defined in C:\ProgramData\STR\SuperSERVER SA\ log4j.scsa.xml
  • The log file is configured to roll to a new file on a daily basis.

You can change the logging level, if necessary.

Logging Levels

Logging is provided by the Apache component Log4j, which has six levels of logging. These levels are (listed in order, from most verbose to least verbose):

TRACE
Most verbose. All possible messages are written to the logs.
DEBUG
Logs everything except TRACE messages.
INFO
This is the default setting. Recommended for production use. Logs INFO, WARN, ERROR and FATAL messages.
WARN
Logs only WARN, ERROR and FATAL messages.
ERROR
Logs only ERROR and FATAL messages.
FATAL
Least verbose. Only FATAL errors are logged.

Increase or Decrease the Amount of Information Logged

By default, SuperSERVER is configured to log at the INFO level. This means that all INFO, WARN, ERROR, and FATAL messages are logged.

You can change this by editing this section:

XML
    <root>
        <level value ="INFO" />
        <appender-ref ref="MainLog" />
        <appender-ref ref="CONSOLE"/>       
    </root>

For example, to change to the DEBUG level, you could change this to:

XML
    <root>
        <level value ="DEBUG" />
        <appender-ref ref="MainLog" />
        <appender-ref ref="CONSOLE"/>       
    </root>

This will configure SuperSERVER to log DEBUG messages, in addition to INFO, WARN, ERROR, and FATAL messages.

Change the Log Level for an Individual Message Context

The above example changes the root logging level. This is a global setting that applies to all log messages from SuperSERVER.

If you need finer grained control over logging, you can set different logging levels for different types of message (referred to as "message contexts"). For example, if you were debugging a Data Control API plugin, you might want to set a higher level of logging for messages from your plugin, without changing the global level for the whole of SuperSERVER.

To configure logging for a specific message context, add a section similar to the following (replace <message_context> with the context and <level> with one of the levels listed above):

XML
      <logger name="<message-context>" additivity="false">
          <level value ="<level>" />
          <appender-ref ref="MainLog" />
          <appender-ref ref="CONSOLE"/>       
      </logger>

You can find the message context by looking at the existing log messages; the context appears at the start of the message after the time and the logging level.

For example, the following excerpt from a SuperSERVER log shows two messages. The first has the context AUDIT_DataServer and the second message has the context AUDIT_Session:

CODE
13:12:27 2014/08/01, INFO, AUDIT_DataServer, "Accepting CORBA Client Requests on Address inet:MyServer:9232" 
14:12:19 2014/08/01, INFO, AUDIT_Session, "User user1 on server_name=localhost, server_port=8080, remote_host=127.0.0.1, remote_port=56159 ( local_addr=127.0.0.1, local_port=8080, remote_addr=127.0.0.1, remote_port=56159, SW2_sessionid=36949EBBEE463F2291B51E6F7746003F )  using SuperWEB2,   Logged In (user permissions)" 

Suppose you wanted to set the global logging level to WARN, but log AUDIT_Session messages at the higher INFO level. You could do this by:

  1. Updating the root logger setting to:

    XML
        <root>
            <level value ="WARN" />
            <appender-ref ref="MainLog" />
            <appender-ref ref="CONSOLE"/>       
        </root>
  2. Adding the following context specific setting at the bottom of the properties file:

    XML
          <logger name="AUDIT_Session" additivity="false">
              <level value ="INFO" />
              <appender-ref ref="MainLog" />
              <appender-ref ref="CONSOLE"/>       
          </logger>

If you are debugging a Data Control plugin, you might want to set the following context-specific setting to log at the DEBUG level for your component:

XML
      <logger name="AUDIT_DataServer.Dcapi" additivity="false">
          <level value ="DEBUG" />
          <appender-ref ref="MainLog" />
          <appender-ref ref="CONSOLE"/>       
      </logger>

Change the Log File Location

By default the log file is written to the SuperSERVER logs directory. You can change the location of the log output if necessary.

You can change the log file location by editing the File and FileNamePattern in the MainLog and StructuredAudit log sections:

XML
      <appender name="MainLog" class="org.apache.log4j.rolling.RollingFileAppender">
        <param name="File" value="${LOG_PATH}/${LOG_BASE_NAME}.logs.txt"/>
        <param name="Append" value="true"/>
        <param name="Encoding" value="UTF-8"/>
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="${LOG_PATH}/${LOG_BASE_NAME}-%d{yyyy-MM-dd}.logs.txt"/>
        </rollingPolicy>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{%H:%M:%S %Y/%m/%d}, %p, %c, '%m' %n"/>
        </layout>
    </appender>
XML
      <appender name="StructuredAudit" class="org.apache.log4j.rolling.RollingFileAppender">
        <param name="File" value="${LOG_PATH}/${LOG_BASE_NAME}-structuredaudit.logs.txt"/>
        <param name="Append" value="true"/>
        <param name="Encoding" value="UTF-8"/>
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="${LOG_PATH}/${LOG_BASE_NAME}-structuredaudit-%d{yyyy-MM-dd}.logs.txt"/>
        </rollingPolicy>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%m%n"/>
        </layout>
    </appender>

These settings control the filenames of SuperSERVER's main log file and its audit log file. In each case, the File setting controls the filename of the current log file, while the FilenamePattern setting in the <rollingPolicy/> section controls the name that will be used when the log file rolls at the end of each day.

For example:

XML
      <appender name="MainLog" class="org.apache.log4j.rolling.RollingFileAppender">
        <param name="File" value="C:/Logs/${LOG_BASE_NAME}.logs.txt"/>
        <param name="Append" value="true"/>
        <param name="Encoding" value="UTF-8"/>
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="C:/Logs/${LOG_BASE_NAME}-%d{yyyy-MM-dd}.logs.txt"/>
        </rollingPolicy>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{%H:%M:%S %Y/%m/%d}, %p, %c, '%m' %n"/>
        </layout>
    </appender>
XML
      <appender name="StructuredAudit" class="org.apache.log4j.rolling.RollingFileAppender">
        <param name="File" value="C:/AuditLogs/${LOG_BASE_NAME}-structuredaudit.logs.txt"/>
        <param name="Append" value="true"/>
        <param name="Encoding" value="UTF-8"/>
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="C:/AuditLogs/${LOG_BASE_NAME}-structuredaudit-%d{yyyy-MM-dd}.logs.txt"/>
        </rollingPolicy>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%m%n"/>
        </layout>
    </appender>

Learn More

Other SuperSTAR components have their own individual logging settings. For more information, see:

In addition, SuperSTAR has an optional Audit Logging component that can be used to track user activity.

For more information about Log4j, refer to the Apache documentation: http://logging.apache.org/log4j/1.2/manual.html.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.