anchor.diff:  
   To be clear about this: the problems reported are usually not with JCL per se, or even
   with `commons-logging`: rather they are to do with binding `commons-logging` to another
  -framework (often Log4J). This can fail because `commons-logging` changed the way they do
  +framework (often Log4j). This can fail because `commons-logging` changed the way they do
   the runtime discovery in between the older versions (1.0) found in some containers and
   the modern versions that most people use now (1.1). Spring does not use any unusual
   parts of the JCL API, so nothing breaks there, but as soon as Spring or your application
  -tries to do any logging you can find that the bindings to Log4J are not working.
  +tries to do any logging you can find that the bindings to Log4j are not working.
   
   In such cases with WAS the easiest thing to do is to invert the class loader hierarchy
   (IBM calls it "parent last") so that the application controls the JCL dependency, not
  
positive.code: [source,xml,indent=0]
  [subs="verbatim,quotes,attributes"]
  ----
  <dependencies>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>2.7</version>
    </dependency>
  </dependencies>
  ----
  
  Here is an example log4j2.xml for logging to the console:
  
  [source,xml,indent=0]
  [subs="verbatim,quotes,attributes"]
  ----
  <?xml version="1.0" encoding="UTF-8"?>
  <Configuration status="WARN">
    <Appenders>
      <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
      </Console>
    </Appenders>
    <Loggers>
      <Logger name="org.springframework.beans.factory" level="DEBUG"/>
      <Root level="error">
        <AppenderRef ref="Console"/>
      </Root>
    </Loggers>
  </Configuration>
  ----
  
  
  [[overview-logging-log4j]]
  ===== Using Log4J 1.x
  To make http://logging.apache.org/log4j/1.2/[Log4j 1.x] work with the default JCL
  dependency (`commons-logging`) all you need to do is put Log4j on the classpath, and
  provide it with a configuration file (`log4j.properties` or `log4j.xml` in the root of
  the classpath). So for Maven users this is your dependency declaration:
  
  
  [source,xml,indent=0]
  [subs="verbatim,quotes,attributes"]
  ----
  	<dependencies>
  		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-core</artifactId>
  			<version>{spring-version}</version>
  		</dependency>
  		<dependency>
  			<groupId>log4j</groupId>
  			<artifactId>log4j</artifactId>
  			<version>1.2.17</version>
  		</dependency>
  	</dependencies>
  ----
  
  And here's a sample log4j.properties for logging to the console:
  
  [literal]
  [subs="verbatim,quotes"]
  ----
  log4j.rootCategory=INFO, stdout
  
  log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n
  
  log4j.category.org.springframework.beans.factory=DEBUG
  ----
  
  [[overview-native-jcl]]
  
negative.code: 			<version>1.7.22</version>
  		</dependency>
  		<dependency>
  			<groupId>org.apache.logging.log4j</groupId>
  			<artifactId>log4j-slf4j-impl</artifactId>
  			<version>2.7</version>
  		</dependency>
  		<dependency>
  			<groupId>org.apache.logging.log4j</groupId>
  			<artifactId>log4j-api</artifactId>
  			<version>2.7</version>
  		</dependency>
  		<dependency>
  			<groupId>org.apache.logging.log4j</groupId>
  			<artifactId>log4j-core</artifactId>
  			<version>2.7</version>
  		</dependency>
  	</dependencies>
  ----
  