45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何将Log日志通过Hibernate保存到数据库中?

如何将Log日志通过Hibernate保存到数据库中?

2016-09-01 21:58:06 来源:www.45fan.com 【

如何将Log日志通过Hibernate保存到数据库中?

为了记录客户操作软件的轨迹,我想将客户的操作记录有选择的保存起来。(防止到时他死不认账如何将Log日志通过Hibernate保存到数据库中? ),最好是永久的保存,所以就想到保存到用户数据库(可能是不太理想,会使用用户数据库变得很大)。
本来程序中就用到了Log4j进行日志输入,但是只用到了文件和控制台两种方式,一查还真有保存到数据库中的Appender---JDBCAppender。可是它只能是通过JDBC连接向数据库插入语句,我的程序的所有和数据库打交道的都是Hibernate。总不能为了这个功能再单独搞个链接吧?不理想。
把JDBCApppender的源码下来,折腾一阵子。好象有点思路了。
主要是
extends org.apache.log4j.AppenderSkeleton
implements org.apache.log4j.Appender
然后实现org.apache.log4j.AppenderSkeleton这个抽象类中的三个方法就应该可以。

append(LoggingEvent event) //这个应该就是实际向Log中加入日志的方法了
void close() //关闭资源吧
boolean requiresLayout() //日志输出格式?

最终写了一个HiberanteAppender
如何将Log日志通过Hibernate保存到数据库中?packagecn.com.kylinsoft.platform.utils;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
importjava.util.Calendar;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
importorg.apache.log4j.spi.LoggingEvent;
如何将Log日志通过Hibernate保存到数据库中?
importorg.hibernate.Session;
如何将Log日志通过Hibernate保存到数据库中?
importorg.hibernate.Transaction;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
importcn.com.kylinsoft.platform.bean.OperateLog;
如何将Log日志通过Hibernate保存到数据库中?
importcn.com.kylinsoft.platform.utils.hibernate.HibernateUtil;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
publicclassHibernateAppenderextendsorg.apache.log4j.AppenderSkeleton
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
implementsorg.apache.log4j.Appender{
如何将Log日志通过Hibernate保存到数据库中?
privateSessionsession=null;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
/**
如何将Log日志通过Hibernate保存到数据库中?*执行保存数据库操作
如何将Log日志通过Hibernate保存到数据库中?*
@paramoperateLog
如何将Log日志通过Hibernate保存到数据库中?
*/

如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?protectedvoidexecute(OperateLogoperateLog){
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
try{
如何将Log日志通过Hibernate保存到数据库中?session
=HibernateUtil.getSession();
如何将Log日志通过Hibernate保存到数据库中?Transactiontx
=session.beginTransaction();
如何将Log日志通过Hibernate保存到数据库中?session.saveOrUpdate(operateLog);
如何将Log日志通过Hibernate保存到数据库中?tx.commit();
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?}
catch(Exceptione){
如何将Log日志通过Hibernate保存到数据库中?System.err.println(
"can`tsavelog"+e);
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?}
finally{
如何将Log日志通过Hibernate保存到数据库中?
if(session!=null)
如何将Log日志通过Hibernate保存到数据库中?session.close();
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?@Override
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
protectedvoidappend(LoggingEventevent){
如何将Log日志通过Hibernate保存到数据库中?OperateLoglog
=newOperateLog();
如何将Log日志通过Hibernate保存到数据库中?log.setLogDate(Calendar.getInstance().getTime());
如何将Log日志通过Hibernate保存到数据库中?log.setMes(String.valueOf(event.getRenderedMessage()));
如何将Log日志通过Hibernate保存到数据库中?log.setStackTrace(event.getThrowableInformation()
如何将Log日志通过Hibernate保存到数据库中?
+event.getThreadName());
如何将Log日志通过Hibernate保存到数据库中?execute(log);
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?@Override
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicvoidclose(){
如何将Log日志通过Hibernate保存到数据库中?
this.closed=true;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?@Override
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicbooleanrequiresLayout(){
如何将Log日志通过Hibernate保存到数据库中?
returntrue;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?

HibernateUtil是操作Hibernate的类。其中要有一个getSession方法,
还有一个OperateLog 类。这个就是和数据库对应的实体类了
如何将Log日志通过Hibernate保存到数据库中?packagecn.com.kylinsoft.platform.bean;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
importjava.io.Serializable;
如何将Log日志通过Hibernate保存到数据库中?
importjava.util.Date;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicclassOperateLogimplementsSerializable{
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
privateIntegerid;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
privateStringuserId;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
privateStringmes;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
privateDatelogDate;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?
privateStringstackTrace;
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicOperateLog(){
如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicvoidsetLogDate(DatelogDate){
如何将Log日志通过Hibernate保存到数据库中?
this.logDate=logDate;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicDategetLogDate(){
如何将Log日志通过Hibernate保存到数据库中?
returnlogDate;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicIntegergetId(){
如何将Log日志通过Hibernate保存到数据库中?
returnid;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicvoidsetId(Integerid){
如何将Log日志通过Hibernate保存到数据库中?
this.id=id;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicStringgetMes(){
如何将Log日志通过Hibernate保存到数据库中?
returnmes;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicvoidsetMes(Stringmes){
如何将Log日志通过Hibernate保存到数据库中?
this.mes=mes;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicStringgetStackTrace(){
如何将Log日志通过Hibernate保存到数据库中?
returnstackTrace;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicvoidsetStackTrace(StringstackTrace){
如何将Log日志通过Hibernate保存到数据库中?
this.stackTrace=stackTrace;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicStringgetUserId(){
如何将Log日志通过Hibernate保存到数据库中?
returnuserId;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?如何将Log日志通过Hibernate保存到数据库中?
publicvoidsetUserId(StringuserId){
如何将Log日志通过Hibernate保存到数据库中?
this.userId=userId;
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?
如何将Log日志通过Hibernate保存到数据库中?}

如何将Log日志通过Hibernate保存到数据库中?

至于hbm.xml和数据库表的结构根据这个类就可以写出来了。

差点忘了Log4j.xml文件中加入这一段


如何将Log日志通过Hibernate保存到数据库中?<appendername="JDBC"class="cn.com.kylinsoft.platform.utils.HibernateAppender">
如何将Log日志通过Hibernate保存到数据库中?<!--这个Layout应该没有什么作用,因为存入数据库的格式是固定的-->
如何将Log日志通过Hibernate保存到数据库中?<layoutclass="org.apache.log4j.PatternLayout">
如何将Log日志通过Hibernate保存到数据库中?<paramname="ConversionPattern"
如何将Log日志通过Hibernate保存到数据库中?value="[%d{yyyy-MM-ddHH:mm:ss}]%c:[%-5p]%x-%m%n"/>
如何将Log日志通过Hibernate保存到数据库中?</layout>
如何将Log日志通过Hibernate保存到数据库中?</appender>
如何将Log日志通过Hibernate保存到数据库中?


主要缺点:
1、日志的格式固定的,不能改变;
2、日志表的记录,如果太大就不好处理了,得想个办法在超过一定记录数后清除,或转存到其他的表中。

如果谁有好的方法解决上面的问题,请联系wfn_libo@163.com


 

本文地址:http://www.45fan.com/a/question/70984.html
Tags: 通过 日志 log
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部