Log4j2 error on load XML configuration file

吃可爱长大的小学妹 提交于 2019-11-28 13:40:09
Simulant

You don't need to use the ConfigurationFactory when you use a XML-Configuration file. Just make sure your XML file is setup correctly.

Filename must be log4j2.xml

The file must me added to the classPath.

Get the logger with the right name in your applicaton, the same name you used to set up the logger in your xml-file, have a look here.

I had similar problem. Here is example that helped me: https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/FormatterLoggerManualExample.java

In your case it should look like this:

URI configuration = Main.class.getResource("/in/gunbound/prelauncher/server/log4j2/log4j2.xml").toURI();
Configurator.initialize("config", null, configuration);

Had the same problem, solved it like this:

import java.io.InputStream;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationFactory.ConfigurationSource;
import org.apache.logging.log4j.core.config.XMLConfigurationFactory;

public class Log
{

    private Logger logger;

    public Log(String name)
    {
        InputStream is = Application.class.getResourceAsStream("log-config.xml");
        ConfigurationSource source = new ConfigurationSource(is);
        Configuration config = XMLConfigurationFactory.getInstance().getConfiguration(source);
        LoggerContext ctx = (LoggerContext) LogManager.getContext(true);

        ctx.stop();
        ctx.start(config);

        logger = ctx.getLogger(name);
    }

    public Logger getLog()
    {
        return logger;
    }

}

I'm currently using log4j2 beta 9 with a databaseAppender for writing into a ora db.

Shortest way (without creation of factory, source or url objects):

Configurator.initialize("configName", "logging.xml");

This works even if the configuration file is not named "log4j2.*".

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!