1、首先创建日志数据库
用的是MySQL
CREATE TABLE `td_log` (
`lid` int(11) NOT NULL AUTO_INCREMENT,
`lusername` varchar(20) DEFAULT NULL,
`lmessage` varchar(200) DEFAULT NULL,
`lstartdate` varchar(30) DEFAULT NULL,
`level` varchar(20) DEFAULT NULL,
PRIMARY KEY (`lid`)
)
2、配置文件中的部分内容:
log4j.rootLogger=info,jdbc
#直接使用log4j包中的文件
log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender
#与数据库建立连接
log4j.appender.jdbc.URL=jdbc:mysql://localhost:3306/test
log4j.appender.jdbc.driver=com.mysql.jdbc.Driver
log4j.appender.jdbc.user=root
log4j.appender.jdbc.password=admin
log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %t %c{2}:%L - %m%n
#指定要插入数据库的格式,与数据库字段对应,与一般SQL区别不大,只是加上了log4j的一些配置参数而已。
log4j.appender.jdbc.sql=insert into td_log(lusername, lstartdate, level, lmessage) values ('%X{lusername}','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
3、日志工具类源码如下
/**
* 系统日志辅助类
* @author
* @date */
public class LogUtil{
/**
* 崩溃级别
* @param lusername
* @param message
*/
public static void fatal(Logger logger, String lusername,String message){
MDC.put("lusername", lusername);
logger.fatal(message);
}
/**
* 错误级别
* @param username
* @param message
*/
public static void error(Logger logger, String lusername,String message){
MDC.put("lusername", lusername);
logger.error(message);
}
/**
* 错误级别
* @param username
* @param message
*/
public static void error(Logger logger, String lusername, Object message){
MDC.put("lusername", lusername);
logger.error(message);
}
/**
* 消息级别
* @param logger
* @param username
* @param message
*/
public static void info(Logger logger, String lusername,String message){
MDC.put("lusername", lusername);
logger.info(message);
}
/**
* 警告级别
* @param username
* @param message
*/
public static void warn(Logger logger, String lusername,String message){
MDC.put("lusername", lusername);
logger.warn(message);
}
/**
* 调试级别
* @param username
* @param message
*/
public static void debug(Logger logger, String lusername,String message){
MDC.put("lusername", lusername);
logger.debug(message);
}
}
4、客户端调用源码
public class test{
private static Logger logger = Logger.getLogger(test.class);
public static void main(String[] args) {
LogUtil.info(logger, "wyw", "看看是否写入了数据库");
}
}