<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<rss version="0.91">
  <channel>
    <title>Apache Log4j to SLF4J Adapter - Checkstyle report</title>
    <link>https://logging.apache.org/log4j/2.x/log4j-to-slf4j/</link>
    <description>Apache Log4j to SLF4J Adapter - Checkstyle report</description>
    <language>en-us</language>
    <copyright>&#169;1999 - 2020 The Apache Software Foundation</copyright>
    <item>
      <title>File: 6,
             Errors: 2,
             Warnings: 0,
             Infos: 0
      </title>
            <link>https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html</link>
      <description>
        <p>Click <a href="https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html">here</a> for the full Checkstyle report.</p>

        <table summary="Files" boder="1">
          <thead>
            <tr>
              <th>Files</th>
              <th style="width:30px;"><abbr title="Info">I</abbr></th>
              <th style="width:30px;"><abbr title="Warning">W</abbr></th>
              <th style="width:30px;"><abbr title="Error">E</abbr></th>
            </tr>
          </thead>
          <tbody>
                          <tr>
                <td>
                  <a href="https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html#org.apache.logging.slf4j.SLF4JLoggerContext.java">org/apache/logging/slf4j/SLF4JLoggerContext.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html#org.apache.logging.slf4j.SLF4JLoggerContextFactory.java">org/apache/logging/slf4j/SLF4JLoggerContextFactory.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html#org.apache.logging.slf4j.package-info.java">org/apache/logging/slf4j/package-info.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html#org.apache.logging.slf4j.SLF4JLogger.java">org/apache/logging/slf4j/SLF4JLogger.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
                <td>
                  1
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html#org.apache.logging.slf4j.SLF4JProvider.java">org/apache/logging/slf4j/SLF4JProvider.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
                <td>
                  1
                </td>
              </tr>
                          <tr>
                <td>
                  <a href="https://logging.apache.org/log4j/2.x/log4j-to-slf4j//checkstyle.html#org.apache.logging.slf4j.MDCContextMap.java">org/apache/logging/slf4j/MDCContextMap.java</a>
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
                <td>
                  0
                </td>
              </tr>
                      </tbody>
        </table>
        
      </description>
    </item>
  </channel>
</rss>

