Log to a database using log4j

后端 未结 3 1103
忘掉有多难
忘掉有多难 2020-11-29 06:32

Since in log4j javadoc is

WARNING: This version of JDBCAppender is very likely to be completely replaced in the future. Moreoever, it does not log exc

3条回答
  •  广开言路
    2020-11-29 07:11

        **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
    

提交回复
热议问题