Java 类org.apache.log4j.helpers.Loader 实例源码

项目:daq-eclipse    文件:RendererMap.java   
/**
    Add a renderer to a hierarchy passed as parameter.
 */
 static
 public
 void addRenderer(RendererSupport repository, String renderedClassName,
       String renderingClassName) {
   LogLog.debug("Rendering class: ["+renderingClassName+"], Rendered class: ["+
     renderedClassName+"].");
   ObjectRenderer renderer = (ObjectRenderer)
            OptionConverter.instantiateByClassName(renderingClassName,
                        ObjectRenderer.class,
                        null);
   if(renderer == null) {
     LogLog.error("Could not instantiate renderer ["+renderingClassName+"].");
     return;
   } else {
     try {
Class renderedClass = Loader.loadClass(renderedClassName);
repository.setRenderer(renderedClass, renderer);
     } catch(ClassNotFoundException e) {
LogLog.error("Could not find class ["+renderedClassName+"].", e);
     }
   }
 }
项目:settings4j    文件:Log4jConfigurationLoader.java   
/**
 * @param configLocation location.
 */
protected void initLogging(final String configLocation) {
    log("initLogging [" + configLocation + "].");
    URL url = null;
    try {
        url = new URL(configLocation);
        log("found url: " + url);
    } catch (@SuppressWarnings("unused") final MalformedURLException ex) {
        // so, resource is not a URL:
        // attempt to get the resource from the class path
        log("attempt to get the resource from the class path.");
        url = Loader.getResource(configLocation);
    }
    if (url != null) {
        log("Using URL [" + url + "] for automatic log4j configuration.");

        if (configLocation.toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
            DOMConfigurator.configure(url);
        } else {
            PropertyConfigurator.configure(url);
        }

    } else {
        log("Could not find resource: [" + configLocation + "].");
    }
}
项目:nabs    文件:RendererMap.java   
/**
    Add a renderer to a hierarchy passed as parameter.
 */
 static
 public
 void addRenderer(RendererSupport repository, String renderedClassName,
       String renderingClassName) {
   LogLog.debug("Rendering class: ["+renderingClassName+"], Rendered class: ["+
     renderedClassName+"].");
   ObjectRenderer renderer = (ObjectRenderer)
            OptionConverter.instantiateByClassName(renderingClassName,
                        ObjectRenderer.class,
                        null);
   if(renderer == null) {
     LogLog.error("Could not instantiate renderer ["+renderingClassName+"].");
     return;
   } else {
     try {
Class renderedClass = Loader.loadClass(renderedClassName);
repository.setRenderer(renderedClass, renderer);
     } catch(ClassNotFoundException e) {
LogLog.error("Could not find class ["+renderedClassName+"].", e);
     }
   }
 }
项目:cacheonix-core    文件:LoggingEvent.java   
private
 void readLevel(ObjectInputStream ois)
                     throws java.io.IOException, ClassNotFoundException {

   int p = ois.readInt();
   try {
     String className = (String) ois.readObject();
     if(className == null) {
level = Level.toLevel(p);
     } else {
Method m = (Method) methodCache.get(className);
if(m == null) {
  Class clazz = Loader.loadClass(className);
  // Note that we use Class.getDeclaredMethod instead of
  // Class.getMethod. This assumes that the Level subclass
  // implements the toLevel(int) method which is a
  // requirement. Actually, it does not make sense for Level
  // subclasses NOT to implement this method. Also note that
  // only Level can be subclassed and not Priority.
  m = clazz.getDeclaredMethod(TO_LEVEL, TO_LEVEL_PARAMS);
  methodCache.put(className, m);
}
PARAM_ARRAY[0] = new Integer(p);
level = (Level) m.invoke(null,  PARAM_ARRAY);
     }
   } catch(Exception e) {
LogLog.warn("Level deserialization failed, reverting to default.", e);
level = Level.toLevel(p);
   }
 }
项目:cacheonix-core    文件:MDC.java   
private
MDC() {
  java1 = Loader.isJava1();
  if(!java1) {
    tlm = new ThreadLocalMap();
  }
}
项目:cacheonix-core    文件:RendererMap.java   
/**
    Add a renderer to a hierarchy passed as parameter.
 */
 static
 public
 void addRenderer(RendererSupport repository, String renderedClassName,
       String renderingClassName) {
   LogLog.debug("Rendering class: ["+renderingClassName+"], Rendered class: ["+
     renderedClassName+"].");
   ObjectRenderer renderer = (ObjectRenderer)
            OptionConverter.instantiateByClassName(renderingClassName,
                        ObjectRenderer.class,
                        null);
   if(renderer == null) {
     LogLog.error("Could not instantiate renderer ["+renderingClassName+"].");
     return;
   } else {
     try {
Class renderedClass = Loader.loadClass(renderedClassName);
repository.setRenderer(renderedClass, renderer);
     } catch(ClassNotFoundException e) {
LogLog.error("Could not find class ["+renderedClassName+"].", e);
     }
   }
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse a layout element.
 */  
 protected
 Layout parseLayout (Element layout_element) {
   String className = subst(layout_element.getAttribute(CLASS_ATTR));
   LogLog.debug("Parsing layout of class: \""+className+"\"");       
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Layout layout      = (Layout)instance;
     PropertySetter propSetter = new PropertySetter(layout);

     NodeList params    = layout_element.getChildNodes();
     final int length   = params.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = (Node)params.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }

     propSetter.activate();
     return layout;
   }
   catch (Exception oops) {
     LogLog.error("Could not create the Layout. Reported error follows.",
       oops);
     return null;
   }
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse a level  element.
 */
 protected
 void parseLevel(Element element, Logger logger, boolean isRoot) {
   String catName = logger.getName();
   if(isRoot) {
     catName = "root";
   }

   String priStr = subst(element.getAttribute(VALUE_ATTR));
   LogLog.debug("Level value for "+catName+" is  ["+priStr+"].");

   if(INHERITED.equalsIgnoreCase(priStr) || NULL.equalsIgnoreCase(priStr)) {
     if(isRoot) {
LogLog.error("Root level cannot be inherited. Ignoring directive.");
     } else {
logger.setLevel(null);
     }
   } else {
     String className = subst(element.getAttribute(CLASS_ATTR));      
     if(EMPTY_STR.equals(className)) {  
logger.setLevel(OptionConverter.toLevel(priStr, Level.DEBUG));
     } else {
LogLog.debug("Desired Level sub-class: ["+className+']');
try {    
  Class clazz = Loader.loadClass(className);
  Method toLevelMethod = clazz.getMethod("toLevel", 
                        ONE_STRING_PARAM);
  Level pri = (Level) toLevelMethod.invoke(null, 
                        new Object[] {priStr});
  logger.setLevel(pri);
} catch (Exception oops) {
  LogLog.error("Could not create level ["+priStr+
           "]. Reported error follows.", oops);
  return;
}
     }
   }
   LogLog.debug(catName + " level set to " + logger.getLevel());    
 }
项目:daq-eclipse    文件:LogEvent.java   
private
 void readLevel(ObjectInputStream ois)
                     throws java.io.IOException, ClassNotFoundException {

   int p = ois.readInt();
   try {
     String className = (String) ois.readObject();
     if(className == null) {
level = Level.toLevel(p);
     } else {
Method m = (Method) methodCache.get(className);
if(m == null) {
  Class clazz = Loader.loadClass(className);
  // Note that we use Class.getDeclaredMethod instead of
  // Class.getMethod. This assumes that the Level subclass
  // implements the toLevel(int) method which is a
  // requirement. Actually, it does not make sense for Level
  // subclasses NOT to implement this method. Also note that
  // only Level can be subclassed and not Priority.
  m = clazz.getDeclaredMethod(TO_LEVEL, TO_LEVEL_PARAMS);
  methodCache.put(className, m);
}
PARAM_ARRAY[0] = new Integer(p);
level = (Level) m.invoke(null,  PARAM_ARRAY);
     }
   } catch(Exception e) {
LogLog.warn("Level deserialization failed, reverting to default.", e);
level = Level.toLevel(p);
   }
 }
项目:daq-eclipse    文件:MDC.java   
private
MDC() {
  java1 = Loader.isJava1();
  if(!java1) {
    tlm = new ThreadLocalMap();
  }

  try {
    removeMethod = ThreadLocal.class.getMethod("remove", null);
  } catch (NoSuchMethodException e) {
    // don't do anything - java prior 1.5
  }
}
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse a layout element.
 */  
 protected
 Layout parseLayout (Element layout_element) {
   String className = subst(layout_element.getAttribute(CLASS_ATTR));
   LogLog.debug("Parsing layout of class: \""+className+"\"");       
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Layout layout      = (Layout)instance;
     PropertySetter propSetter = new PropertySetter(layout);

     NodeList params    = layout_element.getChildNodes();
     final int length   = params.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = (Node)params.item(loop);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element) currentNode;
  String tagName = currentElement.getTagName();
  if(tagName.equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }

     propSetter.activate();
     return layout;
   }
   catch (Exception oops) {
       if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
           Thread.currentThread().interrupt();
       }
     LogLog.error("Could not create the Layout. Reported error follows.",
       oops);
     return null;
   }
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
 * Parses throwable renderer.
 * @param element throwableRenderer element.
 * @return configured throwable renderer.
 * @since 1.2.16.
 */
protected ThrowableRenderer parseThrowableRenderer(final Element element) {
    String className = subst(element.getAttribute(CLASS_ATTR));
    LogLog.debug("Parsing throwableRenderer of class: \""+className+"\"");
    try {
      Object instance   = Loader.loadClass(className).newInstance();
      ThrowableRenderer tr      = (ThrowableRenderer)instance;
      PropertySetter propSetter = new PropertySetter(tr);

      NodeList params   = element.getChildNodes();
      final int length  = params.getLength();

      for (int loop = 0; loop < length; loop++) {
            Node currentNode = (Node)params.item(loop);
            if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
                Element currentElement = (Element) currentNode;
                String tagName = currentElement.getTagName();
                if(tagName.equals(PARAM_TAG)) {
                    setParameter(currentElement, propSetter);
                } else {
                    parseUnrecognizedElement(instance, currentElement, props);
                }
            }
      }

      propSetter.activate();
      return tr;
    }
    catch (Exception oops) {
        if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
            Thread.currentThread().interrupt();
        }
        LogLog.error("Could not create the ThrowableRenderer. Reported error follows.",
           oops);
      return null;
    }
}
项目:gerrit    文件:SetLoggingLevelCommand.java   
@SuppressWarnings("unchecked")
private static void reset() throws MalformedURLException {
  for (Enumeration<Logger> logger = LogManager.getCurrentLoggers(); logger.hasMoreElements(); ) {
    logger.nextElement().setLevel(null);
  }

  String path = System.getProperty(JAVA_OPTIONS_LOG_CONFIG);
  if (Strings.isNullOrEmpty(path)) {
    PropertyConfigurator.configure(Loader.getResource(LOG_CONFIGURATION));
  } else {
    PropertyConfigurator.configure(new URL(path));
  }
}
项目:settings4j    文件:Log4jConfigurationLoaderTest.java   
@Before
public void setUp() throws Exception {
    TestUtils.reconfigureSettings4jWithDefaultConfig();

    // clearProperties
    System.clearProperty(LOG4J_CONFIG_KEY);
    System.clearProperty(LOG4J_DOCUMENT_BUILDER_FACTORY);

    // Configure Log4j
    DOMConfigurator.configure(Loader.getResource("org/settings4j/helper/web/log4j-Config-Default.xml"));
}
项目:settings4j    文件:Log4jConfigurationLoaderTest.java   
@After
public void tearDown() throws Exception {
    System.clearProperty(LOG4J_CONFIG_KEY);
    System.clearProperty(LOG4J_DOCUMENT_BUILDER_FACTORY);
    DOMConfigurator.configure(Loader.getResource("log4j.xml"));
    InMemoryLog4jAppender.linesClear();
}
项目:nabs    文件:LoggingEvent.java   
private
 void readLevel(ObjectInputStream ois)
                     throws java.io.IOException, ClassNotFoundException {

   int p = ois.readInt();
   try {
     String className = (String) ois.readObject();
     if(className == null) {
level = Level.toLevel(p);
     } else {
Method m = (Method) methodCache.get(className);
if(m == null) {
  Class clazz = Loader.loadClass(className);
  // Note that we use Class.getDeclaredMethod instead of
  // Class.getMethod. This assumes that the Level subclass
  // implements the toLevel(int) method which is a
  // requirement. Actually, it does not make sense for Level
  // subclasses NOT to implement this method. Also note that
  // only Level can be subclassed and not Priority.
  m = clazz.getDeclaredMethod(TO_LEVEL, TO_LEVEL_PARAMS);
  methodCache.put(className, m);
}
PARAM_ARRAY[0] = new Integer(p);
level = (Level) m.invoke(null,  PARAM_ARRAY);
     }
   } catch(Exception e) {
LogLog.warn("Level deserialization failed, reverting to default.", e);
level = Level.toLevel(p);
   }
 }
项目:nabs    文件:MDC.java   
private
MDC() {
  java1 = Loader.isJava1();
  if(!java1) {
    tlm = new ThreadLocalMap();
  }
}
项目:transcoder    文件:Launcher.java   
public static void main( final String[] args ) throws InterruptedException
{
    // Initialize log4j
    PropertyConfigurator.configure( Loader.getResource( "log4j.properties" ) );

    // Initialize Spring
    final AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
    context.scan( "com.hood.transcoder.spring" );
    context.refresh();

    // Run application
    final TranscoderApplication transcoderApplication =
            (TranscoderApplication) context.getBean( "transcoderApplication" );
    final TranscodeNotificationListener transcodeNotificationListener =
            (TranscodeNotificationListener) context.getBean( "transcodeNotificationListener" );
    final Thread transcodeNotificationListenerThread =
            new Thread( transcodeNotificationListener, "TranscodeNotificationListener" );
    transcodeNotificationListenerThread.start();

    if ( args != null )
    {
        for ( final String arg : args )
        {
            final Path path = FileSystems.getDefault().getPath( arg );
            transcoderApplication.transcodePath( path );
        }
    }

    while ( transcoderApplication.hasOutstandingJobs() )
    {
        Thread.sleep( TimeUnit.SECONDS.toMillis( 1 ) );
    }

    context.close();
}
项目:commune    文件:LoggingEvent.java   
private
void readLevel(ObjectInputStream ois)
                    throws java.io.IOException, ClassNotFoundException {

  int p = ois.readInt();
  try {
    String className = (String) ois.readObject();
    if(className == null) {
  level = Level.toLevel(p);
    } else {
  Method m = (Method) methodCache.get(className);
  if(m == null) {
    Class clazz = Loader.loadClass(className);
    // Note that we use Class.getDeclaredMethod instead of
    // Class.getMethod. This assumes that the Level subclass
    // implements the toLevel(int) method which is a
    // requirement. Actually, it does not make sense for Level
    // subclasses NOT to implement this method. Also note that
    // only Level can be subclassed and not Priority.
    m = clazz.getDeclaredMethod(TO_LEVEL, TO_LEVEL_PARAMS);
    methodCache.put(className, m);
  }
  PARAM_ARRAY[0] = new Integer(p);
  level = (Level) m.invoke(null,  PARAM_ARRAY);
    }
  } catch(Exception e) {
  LogLog.warn("Level deserialization failed, reverting to default.", e);
  level = Level.toLevel(p);
  }
}
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
    Used internally to parse an appender element.
  */
 protected
 Appender parseAppender (Element appenderElement) {
   String className = subst(appenderElement.getAttribute(CLASS_ATTR));
   LogLog.debug("Class name: [" + className+']');    
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Appender appender  = (Appender)instance;
     PropertySetter propSetter = new PropertySetter(appender);

     appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));

     NodeList children  = appenderElement.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);

/* We're only interested in Elements */
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element)currentNode;

  // Parse appender parameters 
  if (currentElement.getTagName().equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  }
  // Set appender layout
  else if (currentElement.getTagName().equals(LAYOUT_TAG)) {
    appender.setLayout(parseLayout(currentElement));
  }
  // Add filters
  else if (currentElement.getTagName().equals(FILTER_TAG)) {
    parseFilters(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(ERROR_HANDLER_TAG)) {
    parseErrorHandler(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(APPENDER_REF_TAG)) {
    String refName = subst(currentElement.getAttribute(REF_ATTR));
    if(appender instanceof AppenderAttachable) {
      AppenderAttachable aa = (AppenderAttachable) appender;
      LogLog.debug("Attaching appender named ["+ refName+
           "] to appender named ["+ appender.getName()+"].");
      aa.addAppender(findAppenderByReference(currentElement));
    } else {
      LogLog.error("Requesting attachment of appender named ["+
           refName+ "] to appender named ["+ appender.getName()+
               "] which does not implement org.apache.log4j.spi.AppenderAttachable.");
    }
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }
     propSetter.activate();
     return appender;
   }
   /* Yes, it's ugly.  But all of these exceptions point to the same
      problem: we can't create an Appender */
   catch (Exception oops) {
     LogLog.error("Could not create an Appender. Reported error follows.",
       oops);
     return null;
   }
 }
项目:cacheonix-core    文件:DOMConfigurator.java   
/**
   Used internally to parse an category element.
*/
protected
void parseCategory (Element loggerElement) {
  // Create a new org.apache.log4j.Category object from the <category> element.
  String catName = subst(loggerElement.getAttribute(NAME_ATTR));

  Logger cat;    

  String className = subst(loggerElement.getAttribute(CLASS_ATTR));


  if(EMPTY_STR.equals(className)) {
    LogLog.debug("Retreiving an instance of org.apache.log4j.Logger.");
    cat = (catFactory == null) ? repository.getLogger(catName) : repository.getLogger(catName, catFactory);
  }
  else {
    LogLog.debug("Desired logger sub-class: ["+className+']');
     try {   
Class clazz = Loader.loadClass(className);
Method getInstanceMethod = clazz.getMethod("getLogger", 
                    ONE_STRING_PARAM);
cat = (Logger) getInstanceMethod.invoke(null, new Object[] {catName});
     } catch (Exception oops) {
LogLog.error("Could not retrieve category ["+catName+
      "]. Reported error follows.", oops);
return;
     }
  }

  // Setting up a category needs to be an atomic operation, in order
  // to protect potential log operations while category
  // configuration is in progress.
  synchronized(cat) {
    boolean additivity = OptionConverter.toBoolean(
                         subst(loggerElement.getAttribute(ADDITIVITY_ATTR)),
       true);

    LogLog.debug("Setting ["+cat.getName()+"] additivity to ["+additivity+"].");
    cat.setAdditivity(additivity);
    parseChildrenOfLoggerElement(loggerElement, cat, false);
  }
}
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse an appender element.
  */
 protected
 Appender parseAppender (Element appenderElement) {
   String className = subst(appenderElement.getAttribute(CLASS_ATTR));
   LogLog.debug("Class name: [" + className+']');    
   try {
     Object instance    = Loader.loadClass(className).newInstance();
     Appender appender  = (Appender)instance;
     PropertySetter propSetter = new PropertySetter(appender);

     appender.setName(subst(appenderElement.getAttribute(NAME_ATTR)));

     NodeList children  = appenderElement.getChildNodes();
     final int length   = children.getLength();

     for (int loop = 0; loop < length; loop++) {
Node currentNode = children.item(loop);

/* We're only interested in Elements */
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
  Element currentElement = (Element)currentNode;

  // Parse appender parameters 
  if (currentElement.getTagName().equals(PARAM_TAG)) {
           setParameter(currentElement, propSetter);
  }
  // Set appender layout
  else if (currentElement.getTagName().equals(LAYOUT_TAG)) {
    appender.setLayout(parseLayout(currentElement));
  }
  // Add filters
  else if (currentElement.getTagName().equals(FILTER_TAG)) {
    parseFilters(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(ERROR_HANDLER_TAG)) {
    parseErrorHandler(currentElement, appender);
  }
  else if (currentElement.getTagName().equals(APPENDER_REF_TAG)) {
    String refName = subst(currentElement.getAttribute(REF_ATTR));
    if(appender instanceof AppenderAttachable) {
      AppenderAttachable aa = (AppenderAttachable) appender;
      LogLog.debug("Attaching appender named ["+ refName+
           "] to appender named ["+ appender.getName()+"].");
      aa.addAppender(findAppenderByReference(currentElement));
    } else {
      LogLog.error("Requesting attachment of appender named ["+
           refName+ "] to appender named ["+ appender.getName()+
               "] which does not implement org.apache.log4j.spi.AppenderAttachable.");
    }
  } else {
         parseUnrecognizedElement(instance, currentElement, props);
     }
}
     }
     propSetter.activate();
     return appender;
   }
   /* Yes, it's ugly.  But all of these exceptions point to the same
      problem: we can't create an Appender */
   catch (Exception oops) {
       if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
           Thread.currentThread().interrupt();
       }
     LogLog.error("Could not create an Appender. Reported error follows.",
       oops);
     return null;
   }
 }
项目:daq-eclipse    文件:DOMConfigurator.java   
/**
    Used internally to parse a level  element.
 */
 protected
 void parseLevel(Element element, Logger logger, boolean isRoot) {
   String catName = logger.getName();
   if(isRoot) {
     catName = "root";
   }

   String priStr = subst(element.getAttribute(VALUE_ATTR));
   LogLog.debug("Level value for "+catName+" is  ["+priStr+"].");

   if(INHERITED.equalsIgnoreCase(priStr) || NULL.equalsIgnoreCase(priStr)) {
     if(isRoot) {
LogLog.error("Root level cannot be inherited. Ignoring directive.");
     } else {
logger.setLevel(null);
     }
   } else {
     String className = subst(element.getAttribute(CLASS_ATTR));      
     if(EMPTY_STR.equals(className)) {  
logger.setLevel(OptionConverter.toLevel(priStr, Level.DEBUG));
     } else {
LogLog.debug("Desired Level sub-class: ["+className+']');
try {    
  Class clazz = Loader.loadClass(className);
  Method toLevelMethod = clazz.getMethod("toLevel", 
                        ONE_STRING_PARAM);
  Level pri = (Level) toLevelMethod.invoke(null, 
                        new Object[] {priStr});
  logger.setLevel(pri);
} catch (Exception oops) {
       if (oops instanceof InterruptedException || oops instanceof InterruptedIOException) {
           Thread.currentThread().interrupt();
       }
  LogLog.error("Could not create level ["+priStr+
           "]. Reported error follows.", oops);
  return;
}
     }
   }
   LogLog.debug(catName + " level set to " + logger.getLevel());    
 }
项目:logging    文件:FoundationLogger.java   
/**
     * Initialize that Foundation Logging library.
     */
    static void init() {// NOPMD

        determineIfNTEventLogIsSupported();

        URL resource = null;

        final String configurationOptionStr = OptionConverter.getSystemProperty(DEFAULT_CONFIGURATION_KEY, null);

        if (configurationOptionStr != null) {
            try {
                resource = new URL(configurationOptionStr);
            } catch (MalformedURLException ex) {
                // so, resource is not a URL:
                // attempt to get the resource from the class path
                resource = Loader.getResource(configurationOptionStr);
            }
        }
        if (resource == null) {
            resource = Loader.getResource(DEFAULT_CONFIGURATION_FILE); // NOPMD
        }

        if (resource == null) {
            System.err.println("[FoundationLogger] Can not find resource: " + DEFAULT_CONFIGURATION_FILE); // NOPMD
            throw new FoundationIOException("Can not find resource: " + DEFAULT_CONFIGURATION_FILE); // NOPMD
        }

        // update the log manager to use the Foundation repository.
        final RepositorySelector foundationRepositorySelector = new FoundationRepositorySelector(FoundationLogFactory.foundationLogHierarchy);
        LogManager.setRepositorySelector(foundationRepositorySelector, null);

        // set logger to info so we always want to see these logs even if root
        // is set to ERROR.
        final Logger logger = getLogger(FoundationLogger.class);

        final String logPropFile = resource.getPath();
        log4jConfigProps = getLogProperties(resource);

        // select and configure again so the loggers are created with the right
        // level after the repository selector was updated.
        OptionConverter.selectAndConfigure(resource, null, FoundationLogFactory.foundationLogHierarchy);

        // start watching for property changes
        setUpPropFileReloading(logger, logPropFile, log4jConfigProps);

        // add syslog appender or windows event viewer appender
//      setupOSSystemLog(logger, log4jConfigProps);

        // parseMarkerPatterns(log4jConfigProps);
        // parseMarkerPurePattern(log4jConfigProps);
//      udpateMarkerStructuredLogOverrideMap(logger);

        AbstractFoundationLoggingMarker.init();

        updateSniffingLoggersLevel(logger);

        setupJULSupport(resource);

    }
项目:logstash-gelf    文件:Log4jUtil.java   
/**
 * @return {@literal true} if the Log4j MDC is available
 */
public static boolean isLog4jMDCAvailable() {
    return !Loader.isJava1();
}