Logging Configuration

wildfly-10.1.0.Final/standalone/configuration/logback.xml

This file controls the operations related to the logging - the location of the log file, size, backup policy, trace level, and others.

You can control the trace levels per class or package.

<configuration debug="true" scan="true" scanPeriod="30 seconds">

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>${JBOSS_HOME}/standalone/log/server-j.log</file>
      <encoder>
        <pattern>%date{dd-MMM-yyyy;HH:mm:ss.SSS} %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
      </encoder>
      <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
          <fileNamePattern>${JBOSS_HOME}/standalone/log/server-j.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
          <maxFileSize>1MB</maxFileSize>
          <maxHistory>30</maxHistory>
          <totalSizeCap>10GB</totalSizeCap>
      </rollingPolicy>
    </appender>
  
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
      <encoder>
        <pattern>%date{dd-MMM-yyyy;HH:mm:ss.SSS} [%thread] %level %logger{10}[%line] %msg%n</pattern>
      </encoder>
    </appender>
  
    <logger name="com.ism" additivity="false" level="INFO">
      <appender-ref ref="FILE" />
    </logger>
    <logger name="com.xnarum" additivity="false" level="INFO">
      <appender-ref ref="FILE" />
    </logger>
    <logger name="com.zaxxer" additivity="false" level="INFO">
      <appender-ref ref="FILE" />
    </logger>
    <logger name="org.quartz" additivity="false" level="INFO">
      <appender-ref ref="FILE" />
    </logger>
  
    <root level="INFO">
      <appender-ref ref="FILE" />
    </root>
  </configuration>
  
                    

Global

PropertyDescription

debug

true - display the configuration to standard out

scan

true - scan this file, and reload if updated

scanPeriod

Scan interval - "30 seconds"

File Appender

PropertyDescription

class

ch.qos.logback.core.rolling.RollingFileAppender

RollingFileAppender can log to a file named log.txt file and, once a certain condition is met, change its logging target to another file.

There are two important subcomponents that interact with RollingFileAppender. The first RollingFileAppender sub-component, namely RollingPolicy, is responsible for undertaking the actions required for a rollover. A second subcomponent of RollingFileAppender, namely TriggeringPolicy, will determine if and exactly when rollover occurs. Thus, RollingPolicy is responsible for the what and TriggeringPolicy is responsible for the when.

PropertyDescription

file

${JBOSS_HOME}/standalone/log/server-j.log

JBOSS_HOME is an environment variable, which is set by JBoss.

encoder.pattern

%date{dd-MMM-yyyy;HH:mm:ss.SSS} %level [%thread] %logger{10} [%file:%line] %msg%n

The patterns are these.

FormatDescription

%date{pattern}

%date{pattern, timezone}

%d{pattern}

%d{pattern, timezone}

%d 2006-10-20 14:06:49,812

%date 2006-10-20 14:06:49,812

%date{ISO8601} 2006-10-20 14:06:49,812

%date{HH:mm:ss.SSS} 14:06:49.812

%date{dd MMM yyyy;HH:mm:ss.SSS} 20 oct. 2006;14:06:49.812

%level

%p

%le

Outputs the level of the logging event.

%thread

%t

Outputs the name of the thread that generated the logging event.

%logger{length}

Outputs the name of the logger at the origin of the logging event.

This conversion word takes an integer as its first and only option. The converter's abbreviation algorithm will shorten the logger name, usually without significant loss of meaning. Setting the value of length option to zero constitutes an exception. It will cause the conversion word to return the sub-string right to the rightmost dot character in the logger name. The next table provides examples of the abbreviation algorithm in action.

Conversion specifier

Logger name

Result

%logger

mainPackage.sub.sample.Bar

mainPackage.sub.sample.Bar

%logger{0}

mainPackage.sub.sample.Bar

Bar

%logger{5}

mainPackage.sub.sample.Bar

m.s.s.Bar

%logger{10}

mainPackage.sub.sample.Bar

m.s.s.Bar

%logger{15}

mainPackage.sub.sample.Bar

m.s.sample.Bar

%logger{16}

mainPackage.sub.sample.Bar

m.sub.sample.Bar

%logger{26}

mainPackage.sub.sample.Bar

mainPackage.sub.sample.Bar

%file

%F

Outputs the file name of the Java source file where the logging request was issued.

Generating the file information is not particularly fast. Thus, its use should be avoided unless execution speed is not an issue.

%msg

%m

%message

Outputs the application-supplied message associated with the logging event.

%n

Outputs the platform dependent line separator character or characters.

This conversion word offers practically the same performance as using non-portable line separator strings such as "\n", or "\r\n". Thus, it is the preferred way of specifying a line separator.

PropertyDescription

rollingPolicy.class

ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy

rollingPolicy.fileNamePattern

${JBOSS_HOME}/logs/${process.name}.log.%d{yyyy-MM-dd}.%i.gz

Rollover file pattern

%i means the number of backup file.

If the pattern ends with .gz or .zip, the rollover file is automatically compressed.

rollingPolicy.maxFileSize

The Maximum file size of the target log file.

If the log size reaches this maxFileSize, the rollover is executed.

rollingPolicy.maxHistory

The optional maxHistory property controls the maximum number of archive files to keep, asynchronously deleting older files. For example, if you specify monthly rollover, and set maxHistory to 6, then 6 months worth of archives files will be kept with files older than 6 months deleted. Note as old archived log files are removed, any folders which were created for the purpose of log file archiving will be removed as appropriate.

Setting maxHistory to zero disables archive removal. By default, maxHistory is set to zero, i.e. by default there is no archive removal.

rollingPolicy.totalSizeCap

The optional totalSizeCap property controls the total size of all archive files. Oldest archives are deleted asynchronously when the total size cap is exceeded. The totalSizeCap property requires maxHistory property to be set as well. Moreover, the "max history" restriction is always applied first and the "total size cap" restriction applied second.

The totalSizeCap property can be specified in units of bytes, kilobytes, megabytes or gigabytes by suffixing a numeric value with KB, MB and respectively GB. For example, 5000000, 5000KB, 5MB and 2GB are all valid values, with the first three being equivalent. A numerical value with no suffix is taken to be in units of bytes.

By default, totalSizeCap is set to zero, meaning that there is no total size cap.

STDOUT Appender

FormatDescription

class

ch.qos.logback.core.ConsoleAppender

Encoder pattern is same as File Appender.

Logger

Logger defines the target appender of a certain package or class and the trace level.

There are 8 trace levels.

LevelDescription

ALL

The ALL has the lowest possible rank and is intended to turn on all logging.

OFF

The OFF has the highest possible rank and is intended to turn off logging.

FATAL

The FATAL level designates very severe error events that will presumably lead the application to abort.

ERROR

The ERROR level designates error events that might still allow the application to continue running.

WARN

The WARN level designates potentially harmful situations.

INFO

The INFO level designates informational messages that highlight the progress of the application at coarse-grained level.

DEBUG

The DEBUG Level designates fine-grained informational events that are most useful to debug an application.

TRACE

The TRACE Level designates finer-grained informational events than the DEBUG level.

  • com.ism - is main module of ISM runtime

  • com.xnarum - is main module of ISM runtime

  • com.zaxxer - is responsible for the communication with the databases

  • org.quartz - is a module for scheduler

  • root - default trace level about the other classes than specified here

These are the additional loggers you can add to trace transactions.

  • com.ism.was.flow.handler - is the package of the task components

  • com.ism.flow - is the package of the flow controller

If you want to trace the certain components, add loggers of these.

ComponentClass

Router

com.ism.was.flow.handler.RouterTask

Mapping

com.ism.was.flow.handler.MappingTask

Function

com.ism.was.flow.handler.ExpressionTask

SQL Executor

com.ism.was.flow.handler.SQLTask

SQL Batch Executor

com.ism.was.flow.handler.SQLBatchTask

Excel Reader

com.ism.was.flow.handler.ExcelReadTask

Excel Writer

com.ism.was.flow.handler.ExcelWriteTask

File Input

com.ism.was.flow.handler.FileInputTask

File Output

com.ism.was.flow.handler.FileOutputTask

File Validation

com.ism.was.flow.handler.FileValidationTask

Record Extract

com.ism.was.flow.handler.RecordExtractTask

FTP Input

com.ism.was.flow.handler.FTPInputTask

FTP Output

com.ism.was.flow.handler.FTPOutputTask

FTP InOut

com.ism.was.flow.handler.FTPTransferTask

REST Client

com.ism.was.flow.handler.RestClientTask

Webservice Client

com.ism.was.flow.handler.WebserviceClientTask

Script

com.ism.was.flow.handler.ScriptTask

Email Sender

com.ism.was.flow.handler.EmailTask

Java Class

com.ism.was.flow.handler.JavaClassTask

PGP Encrypt

com.ism.was.flow.handler.PGPEncryptTask

PGP Decrypt

com.ism.was.flow.handler.PGPDecryptTask

And these loggers can be added additionally.

Class or packageDescription

com.ism.was.flow.common.FlowUtil

Utility class for parsing parameters

com.ism.flow.log

This package is used for cache. If you want to trace the cache in detail, set the log level to DEBUG.

com.ism.flow.executors

This package is used to control the sub flow execution. If you want to trace the execution in detail, set the log level to DEBUG.

org.apache.http

This package is used for HTTP communication. If you want to trace the detail message of the communication, set the log level to DEBUG

jetty-9.4.7/resources/logback.xml

This logback.xml file is almost same as the previos configuration. The log file name is console.log. jetty.home is system property and is set by jetty while starting the web server.

<configuration debug="true" scan="true" scanPeriod="30 seconds">

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>${jetty.home}/logs/console.log</file>
      <encoder>
        <pattern>%date{dd-MMM-yyyy;HH:mm:ss.SSS} %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
      </encoder>
      <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
          <fileNamePattern>${jetty.home}/logs/console.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
          <maxFileSize>20MB</maxFileSize>
          <maxHistory>30</maxHistory>
          <totalSizeCap>10GB</totalSizeCap>
      </rollingPolicy>
    </appender>
  
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
      <!-- encoders are assigned the type
           ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
      <encoder>
        <pattern>%date{dd-MMM-yyyy;HH:mm:ss.SSS} [%thread] %level %logger{10}[%line] %msg%n</pattern>
      </encoder>
    </appender>
  
    <logger name="com.ism" additivity="false" level="DEBUG">
      <appender-ref ref="FILE" />
    </logger>
    <logger name="com.xnarum" additivity="false" level="DEBUG">
      <appender-ref ref="FILE" />
    </logger>
    <logger name="com.zaxxer" additivity="false" level="INFO">
      <appender-ref ref="FILE" />
    </logger>
    <logger name="org.eclipse" additivity="false" level="INFO">
      <appender-ref ref="FILE" />
    </logger>
  
    <root level="INFO">
      <appender-ref ref="FILE" />
    </root>
  </configuration>
  
  
                    

The loggers are these.

  • com.ism - is main module of ISM Admin UI

  • com.xnarum - is main module of ISM Admin UI

  • com.zaxxer - is responsible for the communication with the databases

  • org.eclipse - is a module of web server

Last updated