log4j配置好后,日志不能够输出到数据库中,求指教

资源文件中的内容如下:

[code="java"]
log4j.properties

log4j.rootLogger=INFO,stdout

log4j.logger.org.springframework.web.servlet=INFO,db

log4j.logger.org.springframework.beans.factory.xml=INFO

log4j.logger.com.neam.stum.user=INFO,db

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] - - <%m>%n

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/exppower.log

log4j.appender.logfile.DatePattern=.yyyy-MM-dd

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] wang- <%m>%n

########################

JDBC Appender

#######################

#log4j.logger.business=INFO,db

#log4j.appender.db=com.neam.commons.MyJDBCAppender

log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.BufferSize=10

log4j.appender.db.sqlname=log

log4j.appender.db.driver=com.mysql.jdbc.Driver
log4j.appender.db.URL=jdbc:mysql://172.20.92.139:3306/test?characterEncoding=UTF-8

log4j.appender.db.user=root

log4j.appender.db.password=123456

log4j.appender.db.sql=insert into log(username,class,methodname,createtime,logLevel,msg) values ('%X{username}','%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')

log4j.appender.db.layout=org.apache.log4j.PatternLayout

[/code]

运行时的测试类如下:

[code="java"]

import java.net.URL;

import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
import org.apache.log4j.PropertyConfigurator;

public class TestClass {

public static void main(String[] args) {
    URL url = TestClass.class.getClassLoader().getResource("log4j.properties");
    MDC.put("username", "username");

    PropertyConfigurator.configure(url.getPath());
    Logger logger  =  Logger.getLogger(TestClass.class);
    logger.debug( " debug " );
    logger.error( " error " );
    logger.info(" info ");
}

}

[/code]

Logger logger = Logger.getLogger(TestClass.class);

需要定义
log4j.logger.TestClass=INFO,db

哥们,参见 java log4j日志 写入数据库
[url]http://demojava.iteye.com/blog/1067627[/url]
有demo提供下载。

你的这句[code="java"]log4j.logger.org.springframework.web.servlet=INFO,db[/code]表明要在web容器db才会写入数据库,而不是在main方法中