Versions Compared

Key

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

...

To configure log4j for the JobScheduler Engine add a log4j configuration file (log4j.properties) to a directory of your choice and reference it by setting the java system property log4j.configuration, e.g. -Dlog4j.configuratioh1. configuration=file:///path/to/log4j.properties.




Note

Starting with Release 1.13.3 JobScheduler uses log4j2 with xml configuration. As log4j2 has changed the name of the Java option the complete Java option should look like this:

-Dlog4j.configurationFile=file://[PATH_TO_FILE]/log4j2.xml




Installation

Create the folder ./lib/log/log4j in the installation path of JobScheduler you should modify the property class_path as follows:

...

The folder log4j has to contain the slf4j-log4j12-x.jar file, e.g. slf4j-log4j12-1.7.5.jar.
Make sure that log4j-1.2.16.jar is located in the ./lib directory.

Note

Starting with Release 1.13.3

The folder ./lib/log/log4j comes with the log4j-slf4j-impl-2.13.0.jar.
The log4j-api-2.13.0.jar and log4j-core-2.13.0.jar  is provided in the ./lib/3rdParty directory.

Sample configuration

Code Block
log4j.rootLogger=info, stdout, FILE
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

# Configuration File
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=$\{java.io.tmpdir\}/log4j-test.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

Starting with Release 1.13.3 the configuration looks like this

Code Block
languagexml
titleLog4j 2 XML Configuration
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
	<Appenders>
        <Console name="stdout" target="SYSTEM_OUT">
			<PatternLayout pattern="[%5p] (%F:%L) - %m%n"/>
		</Console>
        <!-- Example Rolling File Appender -->
        <RollingFile name="ExampleAppender" fileName="${env:SCHEDULER_DATA}/logs/example.log" createOnDemand="true" filePattern="${env:SCHEDULER_DATA}/logs/example-%d{yyyy-MM}-%i.log.gz">
            <PatternLayout pattern="%d{ISO8601} %c [%-5p] - %m%n" charset="UTF-8"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <DefaultRolloverStrategy fileIndex="10"/>
        </RollingFile>
    </Appenders>
	<Loggers>
		<Root level="error">
            <AppenderRef ref="stdout"/>
            <AppenderRef ref="ExampleAppender"/>
		</Root>
        <Logger name="joe" level="info"  additivity="false" >
            <AppenderRef ref="ExampleAppender"/>
        </Logger>
    </Loggers>
</Configuration>

Start of JobScheduler

To use the configuration above you have to start JobScheduler by setting the options property (section [java]) in your ./config/factory.ini, e.g.

Code Block
 [java]
 options = -Dlog4j.configuration=file:///path/to/log4j.properties

Starting with Release 1.13.3

Code Block
 [java]
 options = -Dlog4j.configurationFile=file:///path/to/log4j2.xml

Logging to a syslog server

...

The log levels used by JobScheduler are mapped as follows (highest to lowest):

JobScheduler log levels

slf4j log level

error

error

warn

warn

info

info

debug, debug1, debug2

debug

debug3 and higher

trace