Uploaded image for project: 'Log4j 2'
  1. Log4j 2
  2. LOG4J2-291

Failover appender doesn't fail over on JDBC appender error

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.0-beta7
    • 2.0-beta9
    • Appenders
    • None
    • Java version 1.6_045 and Oracle 11g 11.2.0.3.0 database on 64-bit machine. It's running within eclipse but I don't think that should make a difference.

    Description

      When I configure a Failover appender using the jdbc appender as primary and console/file as secondary if I get a database error It prints something to System.err, but not to the file/console as expected.

      How to recreate:

      Make sure a jdbc appender works first.

      Prepare a configuration similar to the one below:

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration status="WARN">
      <appenders>
      <Jdbc name="HubManagerDatabaseLog" tablename="HUB_MANAGER_LOG">
      <ConnectionFactory class="com.somecompany.server.dal.DalCommon" method="getDatabaseInstanceConnection"/>
      <Column name="LOG_DATE" isEventTimestamp="true" />
      <Column name="LOG_THREAD" pattern="%thread" />
      <Column name="LOG_LEVEL" pattern="%level" />
      <Column name="LOG_CLASS" pattern="%logger" />
      <Column name="LOG_METHOD" pattern="%method" />
      <Column name="LOG_MESSAGE" pattern="%message" />
      <Column name="LOG_EXCEPTION" pattern="%exception" />
      </Jdbc>
      <FastRollingFile name="HubManagerFileLog" filename="logs/HubManager.log" filePattern="logs/HubManager-%d

      {COMPACT}

      .log">
      <PatternLayout pattern="%d [%thread] %-5level %logger.%method - %message %exception%n" />
      <Policies>
      <SizeBasedTriggeringPolicy size="5MB"/>
      </Policies>
      <!-- <DefaultRolloverStrategy max="50"/> -->
      </FastRollingFile>
      <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d [%thread] %-5level %logger.%method - %message %exception%n" />
      </Console>
      <Failover name="PrimaryDatabaseLoggingIfFailGoToFile" primary="HubManagerDatabaseLog" suppressExceptions="false">
      <Failovers>
      <appender-ref ref="HubManagerFileLog"/>
      </Failovers>
      </Failover>
      </appenders>

      <loggers>
      <logger name="com.exzac" level="DEBUG">
      <appender-ref ref="PrimaryDatabaseLoggingIfFailGoToFile"/>
      <appender-ref ref="Console"/>
      </logger>
      <root level="DEBUG">
      </root>
      </loggers>
      </configuration>

      Run the following in a test java class that correctly has the above xml configuration on the build path:

      import org.apache.logging.log4j.LogManager;
      import org.apache.logging.log4j.Logger;

      public class TestFailOverAppender {
      private static final Logger LOGGER = LogManager.getLogger(TestFailOverAppender.class);

      public static void main(final String[] args) {
      final String shortString = "FailOver Short message that should go to database";
      LOGGER.info(shortString);
      final StringBuilder longString = new StringBuilder(shortString);
      while (longString.length() < 4000)

      { longString.append(shortString); }

      LOGGER.info(longString.toString());
      LOGGER.info("FailOver short string after message");
      }
      }

      I have tried setting suppressExceptions as false/true. I have tried replacing the fileappender (which works normally) with just console instead and saw the same result. This may or may not be related to another JIRA issue I found, LOG4J2-126.

      If there is simply something wrong with my configuration please let me know. I tried following the documentation as much as possible. Thank you.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            beamerblvd Nick Williams
            asaf.erlich Asaf Erlich
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment