Spring-Anwendung ohne web.xml log4j-Konfiguration

Habe ich eine Feder + Jersey web-Anwendung, ich bin eine Migration von einer web.xml auf annotation-Basis-Konfiguration. Ich bin Implementierung WebApplicationInitializer und alles funktioniert, außer log4j, denn ich habe eine benutzerdefinierte Datei name.

In der web.xml ich hatte

<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>/WEB-INF/custom-name-log4j.xml</param-value>
</context-param>

Dieser gearbeitet.

Nun, ich habe versucht, das gleiche zu tun in Java:

container.setInitParameter("log4jConfiguration", "/WEB-INF/custom-name-log4j.xml");

Diese funktioniert nicht... ich bekomme den folgenden Fehler in Tomcat 7.0.62:

ERROR StatusLogger No Log4j context configuration provided. This is very unusual.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

Meine war-Datei enthält die xml-Datei in das WEB-INF/Ordner.

Muss ich mehr tun, als die Angabe, dass log4jConfiguration parameter?

Später Edit:
WebApplicationInitializer

    @Override
    public void onStartup(ServletContext container) {
        AnnotationConfigWebApplicationContext rootContext =
                new AnnotationConfigWebApplicationContext();
        rootContext.register(MyApplicationConfiguration.class);

        container.setInitParameter("log4jConfiguration", "/WEB-INF/custom-name-log4j.xml");

        rootContext.setConfigLocation("my.package.spring");

        final FilterRegistration.Dynamic characterEncodingFilter = container.addFilter("characterEncodingFilter", new CharacterEncodingFilter());
        characterEncodingFilter.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
        characterEncodingFilter.setInitParameter("encoding", "UTF-8");
        characterEncodingFilter.setInitParameter("forceEncoding", "true");

        container.setInitParameter("spring.profiles.default", "prod");

        rootContext.register(SecurityContextFilter.class);

        container.addListener(new ContextLoaderListener(rootContext));
        container.addListener(new RequestContextListener());

        container.setInitParameter("contextConfigLocation", "");

        final ServletContainer servlet = new ServletContainer();
        final ServletRegistration.Dynamic appServlet = container.addServlet("appServlet", servlet);
        appServlet.setInitParameter("jersey.config.server.provider.packages", "my.package");
        appServlet.setLoadOnStartup(1);

        final Set<String> mappingConflicts = appServlet.addMapping("/rest/*");

    }
Schreibe einen Kommentar