2015-01-30 2 views
0

Этого использование (или, скорее, пытается использовать) сервлеты 2.5 и 2.1 log4jlog4j2 - нерешенная символ отладки

Линии logger.debug («тест») дают не может разрешить символ отладки.

Я немного потерялся по причине, почему, поскольку я следил за всеми документами, насколько я могу судить?

package myPkg; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 
import org.apache.logging.log4j.web.WebLoggerContextUtils; 

@Path("myresource") 
public class MyResource { 
    final Logger logger = LogManager.getLogger(MyResource.class); 
    logger.debug("test"); 

    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String getIt() { 
     return "Got it!"; 
    } 
} 

Я осуществил изменения в web.xml в соответствии с Документами, соответствующая выдержка выглядит следующим образом:

<!-- log4j--> 
    <listener> 
     <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> 
    </listener> 

    <filter> 
     <filter-name>log4jServletFilter</filter-name> 
     <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>log4jServletFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
     <dispatcher>REQUEST</dispatcher> 
     <dispatcher>FORWARD</dispatcher> 
     <dispatcher>INCLUDE</dispatcher> 
     <dispatcher>ERROR</dispatcher> 
    </filter-mapping> 
    <!-- end log4j--> 

И мой pom.xml для log4j выглядит

<dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>${log4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>${log4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-web</artifactId> 
      <version>${log4j.version}</version> 
     </dependency> 

Compile время:

(18,17) java: expected (18,18) java: незаконный старт t ype

ответ

1

Код "logger.debug (" test ");" должен быть внутри метода, конструктора или, по крайней мере, статический блок, как это:

public class A { 
    { 
     logger.debug("test"); 
    } 
} 
+0

Ну, что, кажется, решили ошибку во время компиляции, но мой log4j не регистрирует. Угадайте, что, вероятно, должен быть отдельный вопрос о Stackex, хотя! –

Смежные вопросы