package org.slf4j.impl; import java.util.logging.Logger; import alma.acs.logging.AcsLogger; import junit.framework.TestCase; public class Slf4jAcsLoggerTest extends TestCase { /** * Checks that slf4j is configured to use a single instance of AcsLogger. * @TODO: check log levels etc */ public void testAcsLoggerFromSlf4j() { // hibernate SQL logger 1 org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("org.hibernate.SQL"); validateSlf4jLogger(logger, HibernateLoggerHelper.HIBERNATE_SQL_LOGGER_NAME_PREFIX); // hibernate SQL logger 2 org.slf4j.Logger logger2 = org.slf4j.LoggerFactory.getLogger("org.hibernate.type.XYZ"); validateSlf4jLogger(logger2, HibernateLoggerHelper.HIBERNATE_SQL_LOGGER_NAME_PREFIX); assertSame(logger, logger2); // hibernate standard logger org.slf4j.Logger logger3 = org.slf4j.LoggerFactory.getLogger("org.hibernate.cfg.Ejb3Column"); validateSlf4jLogger(logger3, HibernateLoggerHelper.HIBERNATE_LOGGER_NAME_PREFIX); assertNotSame(logger, logger3); // jacorb logger org.slf4j.Logger logger4 = org.slf4j.LoggerFactory.getLogger("org.jacorb.whatever"); validateSlf4jLogger(logger4, JacorbLoggerHelper.JACORB_LOGGER_NAME); // unrecognized logger org.slf4j.Logger logger5 = org.slf4j.LoggerFactory.getLogger("myNewFramework.logger3736"); validateSlf4jLogger(logger5, "UnknownSlf4j"); } private void validateSlf4jLogger(org.slf4j.Logger logger, String expectedName) { assertNotNull(logger); JDK14LoggerAdapter adapter = (JDK14LoggerAdapter) logger; Logger delegateLogger = adapter.logger; assertNotNull(delegateLogger); assertTrue(delegateLogger instanceof AcsLogger); assertEquals(expectedName, delegateLogger.getName()); } }