2012-10-31 13 views
7

Opracowałem aplikację internetową, w której mogę zarejestrować pracownika.Jak skonfigurować ścieżkę pliku wyjściowego log4j w plikach web.xml i log4j.properties?

My web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 

    <display-name>Employee Registration</display-name> 

    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <servlet-name>sapient</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>sapient</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 

</web-app> 

Teraz po kliknięciu na przycisk Register mojej stronie html. To idzie do klasy kontrolera gdzie ja napisałem kod do logowania,

@org.springframework.stereotype.Controller 
public class RegController { 
    private static final Logger LOGGER = Logger 
      .getLogger(RegController.class.getName()); 


@RequestMapping(value = "/register.htm", method = RequestMethod.GET) 
public ModelAndView handleRequest(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 
    LOGGER.debug("ENTERING the contoller class"); 
    ModelAndView mav = new ModelAndView("register"); 
    LOGGER.debug("exiting the contoller class"); 
    return mav; 

} 

}

Stworzyłem pakiet o nazwie resource i stworzyliśmy plik log4j.properties w

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\loging.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

Ale moje dzienniki nie są tworzone na dysku C:.

Czy muszę skonfigurować coś w web.xml? Zawarłem już plik log4j.jar.

+0

Odsyłam ten link http: //www.mkyong.com/spring-mvc/spring-mvc-log4j-integration-example/ – Swarne27

Odpowiedz

2

Twoje pytanie nie ma nic wspólnego ze Spring MVC. Jest to po prostu problem z konfiguracją Log4J. (Proszę edytować pytanie)

Czy poprawnie skonfigurowałeś rejestrator? (Np w celu umożliwienia poziom debugowania i ustawić file appender do rejestratora)

mieć coś takiego w swojej konfiguracji (po prostu przypomnieć sobie składnię przez pamięć, rozwiązać go samodzielnie, jeśli coś jest nie tak)

log4j.rootLogger.level=INFO, file 
log4j.logger.your.package.RegController=DEBUG 

coś w tym stylu.

Upewnij się również, że nie masz innych log4j.properties lub log4j.xml w ścieżce klas. Log4J prawdopodobnie załaduje je zamiast twojego, co spowodowało problem.

+0

coś nie na temat: zdecydowanie zalecam OP, aby przyjął SLF4J. Możesz nadal używać Log4J jako zaplecza do logowania, ale ułatwi to konfigurację i możesz zmienić swój rejestr logujący w przyszłości –

7

Trzeba obejmują-

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/resource/log4j.properties</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

w web.xml. to zadziała dobrze.

+0

i pod/WEB-INF/resource/dodaj plik log4j.properties z tym kodem '# Root opcja rejestrator log4j.rootLogger = Debug plik # wiadomości dziennika przekierować do pliku dziennika log4j.appender.file = org.apache.log4j.RollingFileAppender #outputs Tomcat domu log4j.appender.file.File = $ {catalina.home} /logs/myapp.log log4j.appender.file.MaxFileSize = 5 MB log4j.appender.file.MaxBackupIndex = 10 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j. appender.file.layout.ConversionPattern =% d {rrrr-MM-dd GG: mm: ss}% -5p% c {1}:% L -% m% n' –

+0

Działa jak urok. Dzięki –

1

Umieścić następujący plik log4j.properties w folderze zasobów.

log4j.rootCategory=INFO,S,rollingFile 

log4j.appender.S =org.apache.log4j.ConsoleAppender 
log4j.appender.S.layout =org.apache.log4j.PatternLayout 
log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n 

log4j.appender.rollingFile = org.apache.log4j.DailyRollingFileAppender 

#provide path to your location where you want logs created. For now its logs folder of tomcat. 
log4j.appender.rollingFile.File = ${catalina.home}/logs/loging.log 
log4j.appender.rollingFile.Append = true 
log4j.appender.rollingFile.MaxFileSize=2000KB 
log4j.appender.rollingFile.MaxBackupIndex=9 

log4j.appender.rollingFile.Threshold = ALL 

log4j.appender.rollingFile.DatePattern = '.'yyy-MM-dd 
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout 
log4j.appender.rollingFile.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n 

Zamień swój kod na ten. Zdecydowanie będzie dobrze.

0

w web.xml dodać ten kod

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/resource/log4j.properties</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

i pod/WEB-INF/źródło/dodać log4j.properties plików z tego kodu

# Root logger option 
    log4j.rootLogger=DEBUG, file # Redirect log messages to a log file 
    log4j.appender.file=org.apache.log4j.RollingFileAppender #outputs to 
    Tomcat home log4j.appender.file.File=${catalina.home}/logs/myapp.log 
    log4j.appender.file.MaxFileSize=5MB 
    log4j.appender.file.MaxBackupIndex=10 
    log4j.appender.file.layout=org.apache.log4j.PatternLayout 
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} 
    %-5p %c{1}:%L - %m%n 

aw swojej klasie dodatku ten kod

private static final Logger logger = Logger.getLogger(NameOfYourrClass.class); 

i wewnątrz swojej funkcji dodać ten kod

logger.debug("This is Error message", new Exception("Testing")); 
Powiązane problemy