在log4j.properties中配置如下:
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender which outputs to System.out.
# JDBC appender directly
log4j.appender.A1=org.apache.log4j.jdbcplus.JDBCAppender
log4j.appender.A1.url=jdbc:mysql://192.168.26.71:3306/test
log4j.appender.A1.dbclass=org.gjt.mm.mysql.Driver
log4j.appender.A1.username=root
log4j.appender.A1.password=
#log4j.appender.A1.sql=INSERT INTO LOG_LOG4J2 (MSG) VALUES (@MSG@)
#next: example for most functions/log types
log4j.appender.A1.sql=INSERT INTO dx_log_tab (id, prio, cat, thread, msg, layout_msg, throwable, ndc, mdc, mdc2, layout, created_on, created_by, dx_cat,dx_flow_name,dx_com_name) VALUES (@INC@, @PRIO@, @CAT@, @THREAD@, @MSG@, @LAYOUT_MSG@, @THROWABLE@, @NDC@, @MDC:MyMDC@, @MDC:MyMDC2@, date_format('@LAYOUT_1@ @LAYOUT_2@', '%Y-%m-%d'), sysdate(), 'me', @DX_CAT@, @DX_FLOW_NAME@, @DX_COM_NAME@)
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%t] %m
#special layout patterns
log4j.appender.A1.layout1=%d{yyyy-MM-dd}
log4j.appender.A1.layout2=%d{HH:mm:ss}
log4j.appender.A1.buffer=1
log4j.appender.A1.commit=Y

解决方案 »

  1.   

    其中org.apache.log4j.jdbcplus.JDBCAppender
    可以到网上去下
      

  2.   

    up,viklove(梦醒时分) 的配置文件中的 log4j.appender.A1.sql=...........VALUES (@INC@, @PRIO@, @CAT@, @THREAD@,........这一段用@   @ 括起来的字段分别代表什么意思,log4j会把它convert什么呢?请指教!另外,如何把自定义的字段也存在数据库里呢,gz
      

  3.   

    支持
    #A1 is for production deployment
    log4j.rootLogger=INFO, A1
    log4j.appender.A1=org.apache.log4j.RollingFileAppender
    log4j.appender.A1.File=D:\\work\\j2ee.log
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.MaxFileSize = 100KB
    log4j.appender.A1.layout.ConversionPattern=%-5p: [%37c %3x] - %m%n
      

  4.   

    sorry
    发错了,这是支持写入文件的
      

  5.   

    建议去研究http://www.hibernate.org/97.html
    hibernate的Log4j appender