Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Scope

  • JS7 makes use of uses Log4j2 for logging purposes. Log rotation is required to prevent log files from filling up disk space.
  • The default configuration allows disk space consumption to be limited for each of Controller, Agent and JOC Cockpit.
  • The configuration for rotating the rotation of log files is similar for all JS7 components.
  • Note that log output from orders and jobs in workflow is not stored with log files but is immediately added to the JS7 - Database and JS7 - History respectively.

...

For the location of Log4j2 configuration files see see the JS7 - Log Files and Locations article.

Log Rotation Strategy

By default log files are rotated on the following events trigger log file rotation by default:

  • if the size of a single log file exceeds 100MB or
  • on day change, i.e. on midnight of the time zone specified with in the Log4j2 configuration.

If a log file is rotated then its name is appended the current date and a running number. In addition, in addition the log file is compressed, e.g. a log file controller.log becomes controller-2021-01-31-1.log.gz. The running number 1 indicates the first rotation log file of the day being rotated.

Users are free to modify the Log4j2 configuration to apply their individual own log rotation strategy , - see the explanations for the examples below.

As an exception to this rule, the watchdog log files for Controller and Agent are not subject to log rotation. The watchdog log file captures any output before the respective associated application is started, e.g. output of the Controller Windows Service, and therefore does not make use of Log4j2 for logging. The watchdog log files therefore should not grow but should report a few lines only in situations when a Controller or Agent could not be started.

...

By default the log retention period for any log files is 30 days and storage consumption of all log files is limited to 5GB. This translates to the fact that log files will be removed that are older than 30 days will be removed. If storage consumption exceeds 5GB then older younger log files will be removed too.

Users are free to modify the Log4j2 configuration to apply their individual own log retention period, see the explanations for the examples below examples explained.

Log retention does not apply to:

  • the The audit.log log file, which is rotated but is not subject to log retention and therefore is not removed or truncated. For compliance reasons the audit.log remains in place for an arbitrary duration. It's the user's responsibility to purge the audit.log according to their requirements.
  • the The watchdog.log files of Controller and Agent that . These files hold any output created before the relevant application is started. 

...

  • The Log4j2 configuration file is the same for Controllers and Agents except for the fact that environment variables in lines 4-6 for Agents use:
    • <Property name="TimeZone">${env:JS7_AGENT_TZ:-Etc/UTC}</Property>
      <Property name="LogDir">${env:JS7_AGENT_LOGS:-logs}</Property>
      <Property name="LogBasename">${env:JS7_AGENT_APPNAME:-agent}</Property>
  • To modify the time zone that is applied to log entries and to the point in time of when log rotation occurs, modify <Property name="TimeZone">Etc/UTC</Property>. The time zone is specified by the Controller and Agent start scripts that set the environment variables JS7_CONTROLLER_TZ and JS7_AGENT_TZ respectively from the time zone reported by the operating system.
  • To enable the debug mode modify , change <property name="RootLogLevel">INFO</property> and <property name="LogLevelOfDebugLog">OFF</property> to DEBUG.
  • To change the log retention period, modify <Property name="RetainDays">30d</Property> to some other value. Note the use of the suffixes d(ays), w(eeks), m(onths).
  • To limit the max. size of individual log files modify , modify <Property name="MaxSizePerFile">100MB</Property> to some other value. Note the use of the units MB, GB.
  • To limit limit the storage consumption of all log files, modify <Property name="MaxSizeOfRolledOverFiles">5GB</Property> to some other value. Note the use of the units MB, GB.

...

  • To change the time zone that is applied to log entries and to the point in time of log rotation, modify the <Property name="TimeZone">Etc/UTC</Property>. The time zone is determined by the operating system during installation.
  • To change the log retention period, modify <Property name="RetainDays">30d</Property> to some other value. Note the use of the suffixes d(ays), w(eeks), m(onths).
  • To limit storage consumption of all log files, modify <Property name="MaxSizeOfRolledOverFiles">5 GB</Property> to some other value. Note the use of the units MB, GB.
  • To limit the max. size of individual log files modify ,modify <Property name="MaxSizePerFile">100 MB</Property> to some other value. Note the use of the units MB, GB.
  • To enable the debug mode modify , change <property name="RootLogLevel">INFO</property> to DEBUG. In addition, modify the value of one or more of the following properties to enable debug output with the respective debug log file: 


    Debug Log FileProperty
    joc-debug.log<Property name="JocLogLevel">DEBUG</Property>
    service-cluster-debug.log<Property name="ServieClusterLogLevel">DEBUG</Property>
    service-history-debug.log<Property name="ServieHistoryLogLevel">DEBUG</Property>
    service-dailyplan-debug.log<Property name="ServiceDailyPlanLogLevel">DEBUG</Property>
    service-cleanup-debug.log<Property name="ServiceCleanupLogLevel">DEBUG</Property>
    service-monitor-debug.log<Property name="ServiceMonitorLogLevel">DEBUG</Property>
    authentication-debug.log<Property name="AuthLogLevel">DEBUG</Property>
    connection-pool-debug.log<Property name="ConnectionPoolLogLevel">DEBUG</Property>

...