log4j.properties:
log4j.rootLogger=database
log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.database.URL=jdbc:mysql://localhost:3306/logtest
log4j.appender.database.driver=com.mysql.jdbc.Driver
log4j.appender.database.user=root
log4j.appender.database.password=zhangyilin
log4j.appender.database.sql=insert into t_log(level,location,message,proTime) values('%p','%c{1}','%m','%d')
log4j.appender.database.layout=org.apache.log4j.PatternLayoutjava程序:
import org.apache.log4j.Logger;public class Log4jDbTest { public static void main(String args[]) {
System.out.println("----------------------------");
Logger log = Logger.getLogger(Log4jDbTest.class);
log.info("hello");
System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
}

}

解决方案 »

  1.   

    你的设置没问题。确定log4j.properties放在src根目录下。或者用户名和密码是正确的,还有看有没有mysql驱动还有如果你数据库中proTime 是TIMESTAMP的话,你用'%d{yyyy-MM-dd HH:mm:ss}'
      

  2.   

    不应该啊。你新建个java工程。按上面的放。没问题。我试了一下。
      

  3.   

    可能是电脑上有什么问题,前面在win7上运行就老是报错,然后这个是在xp上测试的,不报错,但是没有数据。我等会再建一个项目试试!
      

  4.   

    DB
    =============
    CREATE TABLE `t_log` (
      `level` VARCHAR(100) COLLATE utf8_general_ci DEFAULT NULL,
      `location` VARCHAR(500) COLLATE utf8_general_ci DEFAULT NULL,
      `message` VARCHAR(500) COLLATE utf8_general_ci DEFAULT NULL,
      `proTime` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'
    )ENGINE=InnoDB
    CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
    COMMENT='InnoDB free: 8192 kB';
    =====================
    log4j.properties:
    ===================
    log4j.rootLogger=INFO,database
    log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.database.URL=jdbc:mysql://localhost:3306/test
    log4j.appender.database.driver=com.mysql.jdbc.Driver
    log4j.appender.database.user=root
    log4j.appender.database.password=123456
    log4j.appender.database.sql=insert into t_log(level,location,message,proTime) values('%p','%c{1}','%m','%d{yyyy-MM-dd HH:mm:ss}')
    log4j.appender.database.layout=org.apache.log4j.PatternLayout====================================public static void main(String args[]) {
            System.out.println("----------------------------");
            Logger log = Logger.getLogger(Log4jDbTest.class);
            log.info("hello");
            System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
        }
      

  5.   

    你数据库的操作呢 log4j只是记录操作语句 你必须手动实用hibernate或者SQL进行插入的啊
      

  6.   

    是这样啊,但是我没有看到log4j记录的操作语句,我怎么获取所谓的log4j记录的操作语句呢
      

  7.   

    是这样啊,但是我没有看到log4j记录的操作语句,我该怎么获取所谓的log4j记录的操作语句呢