1

これは私のBeanクラス AppLogger.java です

public class AppLogger {

    private String logMessage;

    public String getLogMessage() {
        return logMessage;
    }

    public void setLogMessage(String logMessage) {
        this.logMessage = logMessage;
    }
}

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

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger=debug, file, stdout

私の Log4j.xml

<bean id="appLogger" class="com.sort.model.AppLogger">
   <property name="message" value="Logger!"/>
   </bean>

私の Web.xml

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/Log4J.xml</param-value>
</context-param>

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

サンプルメッセージをログに記録しようとしているコントローラー。

public class BasicFormController {

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

    @ModelAttribute("evaluation")
    protected List<String> referenceData(HttpServletRequest request) throws Exception {

        logger.info("creating a message");
        List<String> evaluation = new ArrayList<String>();
        evaluation.add("Evaluated");
        evaluation.add("Not Evaluated");
        return evaluation;

    }
}

私のservlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <!-- Enable annotation driven controllers, validation etc... -->
    <mvc:annotation-driven />
    <context:component-scan base-package="com.sort.controller" />

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value></value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    </bean>
    </beans>

ビルド パスに log4j-1.2.14.jar があります。問題は、404 エラーが発生することです。アプリは、これらすべての Log4j 関連の問題がなくても問題なく動作します。
これから私を助けてくれませんか?
または、Spring MVC プロジェクトのロギングを示す適切な例を教えてもらえますか?

4

1 に答える 1

1

xml アプローチを使用して、コード フローをログに記録しました。ご回答ありがとうございます。

これが私が使用したlog4j.xmlです...

<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration debug="true">

    <appender name="ROLL" class="org.apache.log4j.RollingFileAppender">
        <!-- The active file to log to -->
        <param name="file" value="D:/portal.log" />
        <param name="append" value="true" />
        <param name="encoding" value="UTF-8" />

        <rollingPolicy class="org.apache.log4j.TimeBasedRollingPolicy">
            <!-- The file to roll to, this is a fairly intelligent parameter, if the 
                file ends in .gz, it gzips it, based on the date stamp it rolls at that time, 
                default is yyyy-MM-dd, (rolls at midnight) See: http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html -->
            <param name="FileNamePattern" value="D:/portal.%d.log.gz" />
        </rollingPolicy>

        <layout class="org.apache.log4j.PatternLayout">
            <!-- The log message pattern -->
            <param name="ConversionPattern" value="%5p %d{ISO8601} [%t][%x] %c - %m%n" />
        </layout>
    </appender>

    <!-- Loggers to filter out various class paths -->

    <logger name="org.hibernate.engine.loading.LoadContexts"
        additivity="false">
        <level value="error" />
        <appender-ref ref="ROLL" />
    </logger>

    <!-- Debugging loggers -->

    <!-- Uncomment to enable debug on calpoly code only -->
    <!-- <logger name="edu.calpoly"> <level value="debug"/> <appender-ref ref="ROLL" 
        /> </logger> -->

    <root>
        <priority value="info" />
        <appender-ref ref="ROLL" />
    </root>

</log4j:configuration>

プロパティファイルを削除し、そのアプローチをやめました。

于 2013-01-25T10:12:52.917 に答える