2009-09-01 115 views
17

数据库自log4j的javadoc登录使用log4j的

警告:这JDBCAppender的版本很可能会在未来被完全取代。不过,它不会记录异常。

我应该怎么做才能登录到数据库?

回答

30

放开。如果你正在寻找一个数据库的appender不仅有效,而且还支持连接池,是维护和妥善记录,比考虑logback的DBAppender

讽刺的是,在有关的log4j的未来版本中移除JDBCAppender的javadoc的警告是我写的。

+6

此答案在3年后仍然有效,还有其他一些数据库日志框架可用吗? – Rachel 2012-04-03 17:57:53

+0

我可以确认它是有效的,我最近刚刚使用JDBCAppender。 – Vincent 2014-02-07 01:07:26

+0

@Vincent我通过JDBCAppender在日志中记录pojo对象。我想通过日志在数据库中插入不同的pojo对象值。怎么做?谢谢。 – Kumar 2014-09-12 10:45:49

11

您可以使用alternative附加目的地,但真正的Log4j 1.2将是各地的标准时间长。他们开发DBAppender作为他们的接收器的同伴,这是没有正式发布的一部分,但是你可以下载源代码,让你自己去为好。

除非不记录异常的问题困扰你,JDBCAppender就好了。任何进一步升级到2.0都会比改变JDBCAppender(如果2.0发生)更激进,所以我不会担心使用它,尽管有警告。他们显然没有一个坚实的路线图或时间表,以引入新的版本,和1.2.15于2007年

0
**log4j.properties file** 

    # Define the root logger with appender file 
    log4j.rootLogger = DEBUG, DB 

    # Define the DB appender 
    log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender 

    # Set JDBC URL 
    log4j.appender.DB.URL=jdbc:mysql://localhost/log 

    # Set Database Driver 
    log4j.appender.DB.driver=com.mysql.jdbc.Driver 

    # Set database user name and password 
    log4j.appender.DB.user=root 
    log4j.appender.DB.password=root 

    # Set the SQL statement to be executed. 
    log4j.appender.DB.sql=INSERT INTO actionlg(user_id, dated, logger, level, message) values('%X{userId}',' %d{yyyy-MM-dd-HH-mm}','%C','%p','%m') 

    # Define the layout for file appender 
    log4j.appender.DB.layout=org.apache.log4j.PatternLayout 

    **Java Class** 
    Log4jExamples.java 
    import java.sql.*; 
    import java.io.*; 

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


    public class Log4jExample { 
      /* Get actual class name to be printed on */ 
      static Logger log = Logger.getLogger(Log4jExample.class.getName()); 
      public static void main(String[] args)throws IOException,SQLException{ 
       log.error("Error"); 
       MDC.put("userId", "1234"); 
      } 
    } 

    **libs required** 
    - mysql-connector-java-3.1.8-bin.jar 
    - log4j-1.2.17.jar