这个内容比较全面、
http://www.cnblogs.com/suman/archive/2010/10/23/1858864.html
这个内容应该算为扩展
http://blog.sina.com.cn/s/blog_4e4dd5570100qp0v.html
上面两个结合就可以使用Log4j,具休源码我再发好地址
Log.java
package cn.ssh.entity; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.GeneratedValue; import javax.persistence.Table; @Entity @Table(name="log") public class Log { private int id; private String log_date; private String log_message; private String user; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getLog_date() { return log_date; } public void setLog_date(String log_date) { this.log_date = log_date; } public String getLog_message() { return log_message; } public void setLog_message(String log_message) { this.log_message = log_message; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } }
log4j.properties
log4j.rootLogger=info,DATABASE ##控制台输出 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File = E:\temp\logging.log log4j.appender.R.MaxFileSize=500KB log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DATABASE.BufferSize = 1 log4j.appender.DATABASE.Threshold=DEBUG log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/ssh?useUnicode=true&characterEncoding=UTF-8 log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver log4j.appender.DATABASE.user=root log4j.appender.DATABASE.password=123456 log4j.appender.DATABASE.sql=INSERT INTO log (log_date,log_message,user) values ("%d{yyyy-MM-dd HH:mm:ss,SSS}","%m,%d{SSS}","%X{user}") log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout log4j.logger.org.hibernate=debug log4j.logger.org.hibernate.type=debug
类中的代码:
private static Log logger = LogFactory.getLog(LoginAction.class); //LoginAction.class 是一个类名字
MDC.put("user", "zhangpengfei");//插入的 user %X{user} logger.info ("用户登陆") ;//插入的 log_message %m
在使用中遇到的两个问题:
1.出现中文乱码 ??
解决方法:log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/ssh?useUnicode=true&characterEncoding=UTF-8 里面的 & 和xml里面的 &asm; 相同
2,Data truncation: Data too long for column 'log_message' at row 1
解决方法:'log_message'在数据库里设成 longText
其中有个错误不太一样,是你们数据库编码不正确,我数据库做的标准,没出错误,上面是操作这个过程中出现的错误,希望能帮到大家,我用的MYsql数据库