Example usage for org.dom4j.io SAXReader read

List of usage examples for org.dom4j.io SAXReader read

Introduction

In this page you can find the example usage for org.dom4j.io SAXReader read.

Prototype

public Document read(Reader reader, String systemId) throws DocumentException 

Source Link

Document

Reads a Document from the given Reader using SAX

Usage

From source file:com.liferay.petra.log4j.Log4JUtil.java

License:Open Source License

public static void configureLog4J(URL url) {
    if (url == null) {
        return;/*from www .j ava2s. c o  m*/
    }

    String urlContent = _getURLContent(url);

    if (urlContent == null) {
        return;
    }

    // See LPS-6029, LPS-8865, and LPS-24280

    DOMConfigurator domConfigurator = new DOMConfigurator();

    domConfigurator.doConfigure(new UnsyncStringReader(urlContent), LogManager.getLoggerRepository());

    try {
        SAXReader saxReader = new SAXReader();

        saxReader.setEntityResolver(new EntityResolver() {

            @Override
            public InputSource resolveEntity(String publicId, String systemId) {

                if (systemId.endsWith("log4j.dtd")) {
                    return new InputSource(DOMConfigurator.class.getResourceAsStream("log4j.dtd"));
                }

                return null;
            }

        });

        Document document = saxReader.read(new UnsyncStringReader(urlContent), url.toExternalForm());

        Element rootElement = document.getRootElement();

        List<Element> categoryElements = rootElement.elements("category");

        for (Element categoryElement : categoryElements) {
            String name = categoryElement.attributeValue("name");

            Element priorityElement = categoryElement.element("priority");

            String priority = priorityElement.attributeValue("value");

            java.util.logging.Logger jdkLogger = java.util.logging.Logger.getLogger(name);

            jdkLogger.setLevel(_getJdkLevel(priority));
        }
    } catch (Exception e) {
        _logger.error(e, e);
    }
}

From source file:com.liferay.util.log4j.Log4JUtil.java

License:Open Source License

public static void configureLog4J(URL url) {
    if (url == null) {
        return;/*from  w  w  w  .j a v a2  s.  c o  m*/
    }

    String urlContent = _getURLContent(url);

    if (urlContent == null) {
        return;
    }

    // See LPS-6029, LPS-8865, and LPS-24280

    DOMConfigurator domConfigurator = new DOMConfigurator();

    Reader urlReader = new StringReader(urlContent);

    domConfigurator.doConfigure(urlReader, LogManager.getLoggerRepository());

    Set<String> currentLoggerNames = new HashSet<String>();

    Enumeration<Logger> enu = LogManager.getCurrentLoggers();

    while (enu.hasMoreElements()) {
        Logger logger = enu.nextElement();

        currentLoggerNames.add(logger.getName());
    }

    try {
        SAXReader saxReader = new SAXReader();

        Reader reader = new StringReader(urlContent);

        Document document = saxReader.read(reader, url.toExternalForm());

        Element rootElement = document.getRootElement();

        List<Element> categoryElements = rootElement.elements("category");

        for (Element categoryElement : categoryElements) {
            String name = categoryElement.attributeValue("name");

            Element priorityElement = categoryElement.element("priority");

            String priority = priorityElement.attributeValue("value");

            setLevel(name, priority, false);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}