log4j 将日志填入数据库(可填多个字段)

表结构

create table theone(

  ID  varchar(100),
  USERID varchar(100),
   LOGONTIME  varchar(100),
   LOGONIP  varchar(100),
   LOGONHOST  varchar(100)

);

//mylog.properties文件(d盘下要有log.log,error.log)

### set log levels ERROR、WARN、INFO、DEBUG ###
log4j.rootLogger = INFO,stdout,D,E,DATABASE

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n


### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.FileAppender
log4j.appender.D.File = d://log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n


### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.FileAppender
log4j.appender.E.File = d://error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern =%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
# 用于数据库#
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@127.0.0.1:1521:orcl
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
#log4j.appender.database.dbclass=oracle.jdbc.driver.OracleDriver#
log4j.appender.DATABASE.user=scott
log4j.appender.DATABASE.password=tiger
log4j.appender.DATABASE.sql=INSERT INTO theone(ID,USERID,LOGONTIME,LOGONIP,LOGONHOST,SYSTEMSOURCE) VALUES ('%X{ID}','%X{USERID}','%X{LOGONTIME}','%X{LOGONIP}','%X{LOGONHOST}','%m')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n

 


 

 

//记录信息类

package xmltest;

public class MessBean {
 private String id;
 private String userid;
 private String logontime;
 private String logonip;
 private String logonhost;
 private String systemsource;
 
 
 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getUserid() {
  return userid;
 }
 public void setUserid(String userid) {
  this.userid = userid;
 }
 public String getLogontime() {
  return logontime;
 }
 public void setLogontime(String logontime) {
  this.logontime = logontime;
 }
 public String getLogonip() {
  return logonip;
 }
 public void setLogonip(String logonip) {
  this.logonip = logonip;
 }
 public String getLogonhost() {
  return logonhost;
 }
 public void setLogonhost(String logonhost) {
  this.logonhost = logonhost;
 }
 public String getSystemsource() {
  return systemsource;
 }
 public void setSystemsource(String systemsource) {
  this.systemsource = systemsource;
 }
 
}

//操作工具类

package xmltest;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.MDC;

public class MessUtil {
 
 public MessUtil(){}
 
    public static MessBean getMessBean(String id, String userid,String logonip,
                                    String logonhost){
     MessBean mess=new MessBean();
     
     mess.setId(userid);
     mess.setLogonhost(logonhost);
     mess.setLogonip(logonip);
     
     Date dt=new Date();
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     mess.setLogontime(sdf.format(dt));
     
     mess.setUserid(userid);
  
  return mess;
 }
 public static void getMDC(MessBean mess){
      MDC.put("ID", mess.getId());
   MDC.put("USERID", mess.getUserid());
   MDC.put("LOGONTIME", mess.getLogontime());
   MDC.put("LOGONIP", mess.getLogonip());
   MDC.put("LOGONHOST", mess.getLogonhost());
 }
 

}

//测试类

package xmltest;

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

public class LogTest {
 static Logger logger = Logger.getLogger(LogTest.class.getName());
 
 public static void main(String[] args) {
  String path=LogTest.class.getResource("/").getPath();
  System.out.println(path+"mylog.properties");
  PropertyConfigurator.configure(path+"mylog.properties");
  
  MessBean mm=MessUtil.getMessBean("001", "333", "121212", "127");
  MessUtil.getMDC(mm);
  logger.info("here 333");//记录到SYSTEMSOURCE字段中
  
  MessBean mm2=MessUtil.getMessBean("002", "222", "343434", "128");
  MessUtil.getMDC(mm2);
  logger.info("here mmm");
  
//  MDC.put("ID", "001");
//  MDC.put("USERID", "333");
//  MDC.put("LOGONTIME", "121212");
//  MDC.put("LOGONIP", "127");
//  MDC.put("LOGONHOST", "168");
  
//  PropertyConfigurator.configure("d://mylog.properties");
//  logger.log("INFO", Priority.INFO, "hereu111", null);
  
//  logger.info("here 333");
 }

}

 

你可能感兴趣的:(log4j,数据库,Date,String,Class,insert)