Mick.987

相信开源,才是未来的春天!

 

log4j+数据库的使用

这个内容比较全面、

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数据库

 

 

宝贝网址:

posted on 2012-01-05 16:23  张朋飞  阅读(1197)  评论(0编辑  收藏  举报

导航