1 package org.andromda.core.common; 2 3 import java.net.URL; 4 5 import org.apache.log4j.BasicConfigurator; 6 import org.apache.log4j.Logger; 7 import org.apache.log4j.xml.DOMConfigurator; 8 9 /*** 10 * This is the logger used to write <em>AndroMDA</em> prefixed messages so 11 * that our informational logging is nice looking. 12 * 13 * @since 26.11.2003 14 * @author <a href="http://www.mbohlen.de">Matthias Bohlen </a> 15 * @author Chad Brandon 16 */ 17 public class AndroMDALogger 18 { 19 private static final String DEFAULT_LOGGER_NAME = "AndroMDA"; 20 21 private static Logger logger = Logger.getLogger(DEFAULT_LOGGER_NAME); 22 23 /*** 24 * Configures logging for the AndroMDA application from the the xml resource 25 * "log4j.xml" found within the same package as this class. 26 */ 27 public static void configure() 28 { 29 final String methodName = "StdoutLogger.configure"; 30 String loggingConfiguration = "log4j.xml"; 31 URL url = AndroMDALogger.class.getResource(loggingConfiguration); 32 if (url == null) 33 { 34 throw new RuntimeException(methodName 35 + " - could not find Logger configuration file '" 36 + loggingConfiguration + "'"); 37 } 38 configure(url); 39 } 40 41 /*** 42 * Configures the Logger from the passed in logConfigurationXml 43 * 44 * @param logConfigurationXml 45 */ 46 protected static void configure(URL logConfigurationXml) 47 { 48 try 49 { 50 DOMConfigurator.configure(logConfigurationXml); 51 } 52 catch (Exception ex) 53 { 54 System.err 55 .println("Unable to initialize logging system with configuration file '" 56 + logConfigurationXml + "' --> using basic configuration."); 57 ex.printStackTrace(); 58 BasicConfigurator.configure(); 59 } 60 } 61 62 /*** 63 * Allows us to add a suffix to the logger name. 64 * 65 * @param name 66 */ 67 public static void setSuffix(String suffix) 68 { 69 logger = Logger.getLogger(DEFAULT_LOGGER_NAME + ':' + suffix); 70 } 71 72 /*** 73 * Resets the logger to the default name. 74 */ 75 public static void reset() 76 { 77 logger = Logger.getLogger(DEFAULT_LOGGER_NAME); 78 } 79 80 public static void debug(Object object) 81 { 82 logger.debug(object); 83 } 84 85 public static void info(Object object) 86 { 87 logger.info(object); 88 } 89 90 public static void warn(Object object) 91 { 92 logger.warn(object); 93 } 94 95 public static void error(Object object) 96 { 97 logger.error(object); 98 } 99 }