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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值