表结构
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");
}
}