最近项目要搭建一个日志平台,没有现成的思路。自己就上网去查,了解log4j搭建日志系统。可以输出在控制台、文件(logfile)、也可以输出到数据库。输出到数据库可以用log4j的配置,也可以继承org.apache.log4j.AppenderSkeleton;实现输出。但是实现类,不能由spring注入baseDao.这是个很烦恼的问题,但是已经解决(参考Frame/java调用spring管理的bean——spring的使用 )。
用log4j搭建日志系统还是比较简单的,主要工作是配置。这里就自己的一些总结与大家分享。
关于log4j的基础理论网上有很多,这里不做详解了,可以上网去看看。
一些文章,有的也不是蛮好,但是这也是我主要参考的文章。当然这个东西个人觉得最主要的是自己做实验,验证一下就可以了……
http://www.360doc.com/content/10/1114/03/4587808_69181107.shtml
http://www.family168.com/oa/tech/logger.html
http://realzjy.blog.51cto.com/818594/185842
http://blog.csdn.net/hiyu2218/archive/2008/12/23/3590480.aspx
使用说明:
log4j.rootLogger= DEBUG,stdout,allLog
log4j.logger.RUN = INFO,runlog,database
log4j.logger.DB = INFO,dblog,database
rootLogger=bug:为根日志,所有的日志都是这个级别的子级,这个级别的日志输出将会输出所有的log4j日志。在stdout和alllog中输出.如果子日志没有指定输出级别,一率按些(bug)默认级别
log4j.logger.RUN:运行日志,只在runlog中输出
log4j.logger.DB:数据库日志,只在dblog和database中输出
外部(第三方)日志框架系统的引入:其等级一般是在引入时配置(测试是不能配置的),如
log4j.logger.com.ibatis = DEBUG
在java代码中的使用:
private static final Logger logger = Logger.getLogger(AbstractLog.LOG_TYPE_RUN);
这里AbstractLog.LOG_TYPE_RUN = "RUN";即这里得到自己的日志。
logger.info(AbstractLog);logger.debug(AbstractLog);
信息实现AbstractLog:
public abstract class AbstractLog {
//运行日志
public static final String LOG_TYPE_RUN = "RUN";
//数据库操作日志
public static final String LOG_TYPE_DB = "DB";
public static final String OPE_RESULT_SUCCESS = "成功";
public static final String OPE_RESULT_FAIL = "失败";
//操作人员编号
private String opeYH;
//日志信息 格式:记录id+结果提示(+errer.message)。
private String logMSG;
//处理类
private String opeClass;
//处理结果:成功、失败
private String opeResult;
//日志类型:暂时有两类,运行和数据库操作
private String logType;
//操作名称
private String opeName;
//操作时间
private Date opeTime;
public String toString() {
return super.toString();
}
public String getOpeClass() {
return opeClass;
}
public void setOpeClass(String opeClass) {
this.opeClass = opeClass;
}
public String getLogType() {
return logType;
}
public void setLogType(String logType) {
this.logType = logType;
}
public String getLogMSG() {
return logMSG;
}
public void setLogMSG(String logMSG) {
this.logMSG = logMSG;
}
public String getOpeResult() {
return opeResult;
}
public void setOpeResult(String opeResult) {
this.opeResult = opeResult;
}
public String getOpeName() {
return opeName;
}
public void setOpeName(String opeName) {
this.opeName = opeName;
}
public String getOpeYH() {
return opeYH;
}
public void setOpeYH(String opeYH) {
this.opeYH = opeYH;
}
public Date getOpeTime() {
return opeTime;
}
public void setOpeTime(Date opeTime) {
this.opeTime = opeTime;
}
}
信息实现DBLog :
public class DBLog extends AbstractLog {
//数据库操作类型
private String opeType;
@Override
public String toString() {
return "用户:"+this.getOpeYH()+". 操作:"+this.getOpeName()+":"+this.getOpeType()+". 运行结果:"+this.getOpeResult()+"! 操作类:"
+this.getOpeClass()+". MSG:"+this.getLogMSG();
}
public String getOpeType() {
return opeType;
}
public void setOpeType(String opeType) {
this.opeType = opeType;
}
}
信息实现RunLog :
public class RunLog extends AbstractLog{
@Override
public String toString() {
return "用户:"+this.getOpeYH()+". 操作:"+this.getOpeName()+". 运行结果:"+this.getOpeResult()+"! 操作类:"
+this.getOpeClass()+". MSG:"+this.getLogMSG();
}
}
当然更加重要的是搭建一个合理的日志平台,由于没得什么经验,只能上网去看别的的说法,加上一些自己的理解。
这里我把日志分为系统运行日志和数据库操作日志两个分别做输出管理。日志的输出是可以配置的,这里可以灵活的把不同类型的日志输出到不同的终端。
这个使用的经验,会不断更新……
分享到:
相关推荐
Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS 11111
搭建log4j日志环境
我用maven + spring mvc +JDBCTEMPLATE + 由Slf4j实现Common-Logging+Log4j的日志控制 (数据库用MySQL)简单编写的注册功能模块 附:项目搭建中的完整步骤和说明
Lor4J的Jar包,用来搭建日志框架。
log4j日志jar包:2个 在Hibernate框架环境下先移除slf4j-nop-1.5.8.jar,然后加入 加入配置文件:一个。放在src文件夹下。 Junit测试配置jar包:1个。在根目录下建立Source Folder存放测试类代码
这是本人搭建的纯净版SpringMVC+ibatis框架,带有Log4j,测试通过,目前自己的项目就是用这个来写的
此压缩包里面不只是slf4j,还有关于它的一整套的工具包。可以直接搭建日志环境。
自己搭建的关于struts1+spring3+hibernate4+log4j整合的一个用户注册的项目,里面包含所有的引用jar包,导入就可以用,供大家参考. 这里比之前传的文件多了一个log4j的配置,里面包括多种方式的日志管理
本人搭建的ssm框架的maven web项目,用maven管理项目的jar包,项目架构搭好,用的都是现阶段最新的jar包,整合了log4j日志,redis缓存,quartz定时任务,全局配置文件在代码中使用等,controller层/service层/bo层/dao层都...
在搭建系统的时候,总要打印日志,打印日志的时候需要配置log4j文件,献上此文件直接配置,一般是在ssm的框架下面配置
一份纯净的idea用的maven搭建SSM框架,里面包括redis,日志,Swagger。
搭建sf4j日志系统所需jar包和properties 内容包括 slf4j-log4j12-1.7.9.jar slf4j-api-1.7.21.jar log4j-1.2.17.jar log4j.properties
该项目采用maven聚合工程,项目骨架是我们以前公司架构师搭建骨架,现在已经拆分出来供大家下载使用,可以扩展使用,里面用到技术有springmvc+mybatis+mysql+log4j.xml+logjdbc+maven+nexus+dubbo ,其中日志采用log...
在日常工程开发中,日志是非常重要的一部分,通过...本资源基于maven,使用logback搭建日志结构,实现多种级别日志的输出控制,并封装各个级别的日志输出方法,可以作为日志管理基础进行扩展以满足其他场景的日志管理。
在项目的开发中,日志是必不可少的...而市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我们该如何选择呢? 通常情况下,日志是由一个抽象层+实现层的组合来搭建的。
com.springsource.org.apache.log4j-1.2.15.jar com.springsource.org.apache.commons.logging-1.1.1.jar com.springsource.org.apache.commons.logging-sources-1.1.1.jar 2.spring的jar包对应的目录说明 docs -api...
│ 北京动力节点SSH前言-017-Log4j-日志的用途及Log4j.mp4 │ 北京动力节点SSH前言-018-Log4j-日志基础.mp4 │ 北京动力节点SSH前言-019-Log4j-Log4j用法.mp4 │ 北京动力节点SSH前言-020-Log4j-Log4j2用法.mp4 │ ...
本人搭建的ssm框架的maven web项目,用maven管理项目的jar包,项目架构搭好,用的都是现阶段最新的jar包,整合了log4j日志,redis缓存,quartz定时任务,全局配置文件在代码中使用等,controller层/service层/bo层/dao层都...
数据源配置; 动态验证ActionForm的使用; 分发action使用; 一个简单的hibernate分页程序; 一个log4j的日志文件
SingleJDBCBase 是基于Spring Framework基础上搭建的一个Java基础开发套件,以Spring MVC为模型视图控制器,JDBC为数据访问层。...* 日志管理:SLF4J 1.7.25、Log4j2.8.2 * 工具类:fasterxml 2.8.7、junit 4.12、