8

従業員を登録できる Web アプリケーションを開発しました。

じぶんの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>

Register、HTMLページのボタンをクリックすると。ロギング用のコードを記述したコントローラ クラスに移動します。

@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;

}

}

というパッケージresourceを作成し、log4j.properties ファイルを作成しました。

# 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

しかし、私のログはC:ドライブに作成されません。

web.xml で何かを構成する必要がありますか? すでに log4j.jar ファイルが含まれています。

4

4 に答える 4

9

含める必要があります-

    <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>

あなたのweb.xmlで。その後、正常に動作します。

于 2012-10-31T09:56:25.650 に答える
2

あなたの質問はSpring MVCとは何の関係もありません。これは単に Log4J 構成の問題です。(質問を編集してください)

ロガーを正しくセットアップしましたか? (たとえば、デバッグ レベルを許可し、fileアペンダーをロガーに設定します)

設定にこのようなものがあります(メモリで構文を思い出すだけです。何か問題がある場合は自分で修正してください)

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

そんな感じ。

また、クラスパスに他の log4j.properties または log4j.xml がないことを確認してください。Log4J はおそらくあなたの代わりにそれらをロードするため、問題が発生しました。

于 2012-10-31T07:30:40.423 に答える
1

次の log4j.properties ファイルを resources フォルダーに含めます。

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

コードをこれに置き換えます。間違いなくうまくいきます。

于 2012-11-04T07:20:31.347 に答える
0

web.xml にこのコードを追加します

   <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>

/WEB-INF/resource/ の下に、このコードを含むファイル log4j.properties を追加します。

 # 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

クラスにこのコードを追加します

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

関数内にこのコードを追加します

logger.debug("This is Error message", new Exception("Testing"));
于 2014-10-14T08:51:15.787 に答える