`

hibernate 中使用log4j常用配置

阅读更多

 

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c:%L - %m%n

### direct messages to file hibernate.log   生成单个日志文件 ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=hibernate.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

 
### direct messages to file hibernate.html   按天生成html文件 ### 
log4j.appender.html=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.html.Threshold=FATAL
log4j.appender.html.File=hibernate.html
log4j.appender.html.Append=true
log4j.appender.html.ImmediateFlush=true
log4j.appender.html.DatePattern='.'yyyy-MM-dd'.html'
log4j.appender.html.layout=com.fxz.log4j.FormatHTMLLayout
 

 

### direct messages to mysql  插入到mysql ###
log4j.appender.MYSQL=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.MYSQL.URL=jdbc:mysql://localhost:3306/hibernate
log4j.appender.MYSQL.driver=com.mysql.jdbc.Driver
log4j.appender.MYSQL.user=fxz
log4j.appender.MYSQL.password=fxz
log4j.appender.MYSQL.sql=INSERT INTO LOG4J (N_RZLSH,V_CLASSNAME,V_METHODNAME,V_SQL,D_DATE) VALUES (NULL,'%C','%M','[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n','%d{yyyy-MM-dd HH\:mm\:ss}') 
log4j.appender.MYSQL.layout=org.apache.log4j.PatternLayout 
log4j.appender.MYSQL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 



### direct messages to ORACLE   插入到oracle ###
log4j.appender.oracle=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.JDBC=com.surfilter.bt.util.Log4jToDBAppender 
log4j.appender.JDBC.Threshold=DEBUG
log4j.appender.oracle.URL=jdbc:oracle:thin:@127.0.0.1:1521:YZ
log4j.appender.oracle.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.oracle.user=fxz
log4j.appender.oracle.password=fxz
log4j.appender.oracle.sql=insert into SYS_LOG(N_RZLSH,V_LOGINID,V_PRIORITY,V_CLASSNAME,V_METHODNAME,V_MSG,D_LOGDATE) values (seq_t_log.nextval,'0','%p','%c{1}','%-10.50l','%m',sysdate)
log4j.appender.oracle.layout=org.apache.log4j.PatternLayout
### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout,file,oracle,html

#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace















 

### FATAL (致命错误)    0       只有他自己
### ERROR(错误1)        3       包含错误(ERROR)、致命错误(FATAL)
### WARN (警告)         4       包含警告(WARN)、错误(ERROR)、致命错误(FATAL)
### INFO (信息)         6       包含信息(INFO)、警告(WARN)、错误(ERROR)、致命错误(FATAL)
### DEBUG(调试)         7       包含调试(DEBUG)、信息(INFO)、警告(WARN)、错误(ERROR)、致命错误(FATAL)

生成到html需要自己写个布局类,以下是网络上的资源   

package com.fxz.log4j;

import java.text.SimpleDateFormat;

import org.apache.log4j.HTMLLayout;
import org.apache.log4j.Layout;
import org.apache.log4j.Level;
import org.apache.log4j.helpers.Transform;
import org.apache.log4j.spi.LocationInfo;
import org.apache.log4j.spi.LoggingEvent;


public class FormatHTMLLayout extends HTMLLayout {

	public FormatHTMLLayout() {
	}

	protected final int BUF_SIZE = 256;

	protected final int MAX_CAPACITY = 1024;

	static String TRACE_PREFIX = "<br>&nbsp;&nbsp;&nbsp;&nbsp;";

	// output buffer appended to when format() is invoked
	private StringBuffer sbuf = new StringBuffer(BUF_SIZE);
	
	String title="系统操作日志";

	/**
	 * A string constant used in naming the option for setting the the HTML
	 * document title. Current value of this string constant is <b>Title</b>.
	 */
	public static final String TITLE_OPTION = "Title";

	// Print no location info by default
	boolean locationInfo = true;
	
	public String format(LoggingEvent event) {
		if (sbuf.capacity() > MAX_CAPACITY) {
			sbuf = new StringBuffer(BUF_SIZE);
		} else {
			sbuf.setLength(0);
		}
		sbuf.append(Layout.LINE_SEP + "<tr>" + Layout.LINE_SEP);
		
/*		sbuf.append("<td>");
		sbuf.append(String.valueOf(i));
		sbuf.append("</td>" + Layout.LINE_SEP);
*/		
		sbuf.append("<td>");
		sbuf.append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
		sbuf.append("</td>" + Layout.LINE_SEP);

	/*	String escapedThread = Transform.escapeTags(event.getThreadName());
		sbuf.append("<td title=\"" + escapedThread + " thread\">");
		sbuf.append(escapedThread);
		sbuf.append("</td>" + Layout.LINE_SEP);
	*/
		sbuf.append("<td title=\"级别\">");
		if (event.getLevel().equals(Level.FATAL)) {
			sbuf.append("<font color=\"#339933\">");
			sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
			sbuf.append("</font>");
		} else if (event.getLevel().isGreaterOrEqual(Level.WARN)) {
			sbuf.append("<font color=\"#993300\"><strong>");
			sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
			sbuf.append("</strong></font>");
		} else {
			sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
		}
		sbuf.append("</td>" + Layout.LINE_SEP);
		
/*		String escapedLogger = Transform.escapeTags(event.getLoggerName().substring(event.getLoggerName().lastIndexOf(".")));
		sbuf.append("<td title=\"类名\">");
		sbuf.append(escapedLogger);
		sbuf.append("</td>" + Layout.LINE_SEP);
*/
		if (locationInfo) {
			LocationInfo locInfo = event.getLocationInformation();
			sbuf.append("<td title=\"行号\">");
			sbuf.append(Transform.escapeTags(locInfo.getFileName()));
			sbuf.append(':');
			sbuf.append(locInfo.getLineNumber());
			sbuf.append("</td>" + Layout.LINE_SEP);
		}
		/*Map session = ActionContext.getContext().getSession();
		if(session!=null){
			User user = (User) session.get(Constants.USER_IN_SESSION);
			sbuf.append("<td>"+user.getName()+"</td>");
		}else{
			sbuf.append("<td>&nbsp;</td>");
		}*/
		sbuf.append("<td>方小洲</td>");
		
		
		
		sbuf.append("<td title=\"日志信息\">");
		sbuf.append(Transform.escapeTags(event.getRenderedMessage()));
		sbuf.append("</td>" + Layout.LINE_SEP);
		sbuf.append("</tr>" + Layout.LINE_SEP);

		if (event.getNDC() != null) {
			sbuf.append("<tr><td bgcolor=\"#EEEEEE\" style=\"font-size : xx-small;\" colspan=\"6\" title=\"Nested Diagnostic Context\">");
			sbuf.append("NDC: " + Transform.escapeTags(event.getNDC()));
			sbuf.append("</td></tr>" + Layout.LINE_SEP);
		}

		String[] s = event.getThrowableStrRep();
		if (s != null) {
			sbuf.append("<tr><td bgcolor=\"#993300\" style=\"color:White; font-size : xx-small;\" colspan=\"4\">");
			appendThrowableAsHTML(s, sbuf);
			sbuf.append("</td></tr>" + Layout.LINE_SEP);
		}
		return sbuf.toString();
	}

	private void appendThrowableAsHTML(String[] s, StringBuffer sbuf) {
		if (s != null) {
			int len = s.length;
			if (len == 0)
				return;
			sbuf.append(Transform.escapeTags(s[0]));
			sbuf.append(Layout.LINE_SEP);
			for (int i = 1; i < len; i++) {
				sbuf.append(TRACE_PREFIX);
				sbuf.append(Transform.escapeTags(s[i]));
				sbuf.append(Layout.LINE_SEP);
			}
		}
	}

	/**
	 * Returns appropriate HTML headers.
	 */
	public String getHeader() {
		StringBuffer sbuf = new StringBuffer();
		sbuf.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" + Layout.LINE_SEP);
		sbuf.append("<html>" + Layout.LINE_SEP);
		sbuf.append("<head>" + Layout.LINE_SEP);
	//	sbuf.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">");
		sbuf.append("<title>" + title + "</title>" + Layout.LINE_SEP);
		sbuf.append("<style type=\"text/css\">" + Layout.LINE_SEP);
		sbuf.append("<!--" + Layout.LINE_SEP);
		sbuf.append("body, table {font-family: '宋体',arial,sans-serif; font-size: 12px;}" + Layout.LINE_SEP);
		sbuf.append("th {background: #336699; color: #FFFFFF; text-align: left;}" + Layout.LINE_SEP);
		sbuf.append("-->" + Layout.LINE_SEP);
		sbuf.append("</style>" + Layout.LINE_SEP);
		sbuf.append("</head>" + Layout.LINE_SEP);
		sbuf.append("<body bgcolor=\"#FFFFFF\" topmargin=\"6\" leftmargin=\"6\">" + Layout.LINE_SEP);
	//	sbuf.append("<hr size=\"1\" noshade>" + Layout.LINE_SEP);
	//	sbuf.append("Log session start time " + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new java.util.Date()) + "<br>" + Layout.LINE_SEP);
	//	sbuf.append("<p>" + Layout.LINE_SEP);
		sbuf.append("<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">" + Layout.LINE_SEP);
		sbuf.append("<tr>" + Layout.LINE_SEP);
	//	sbuf.append("<th>序列</th>" + Layout.LINE_SEP);
		sbuf.append("<th>执行时间</th>" + Layout.LINE_SEP);
		sbuf.append("<th>级别</th>" + Layout.LINE_SEP);
	//	sbuf.append("<th>所在类</th>" + Layout.LINE_SEP);
		if (locationInfo) {
			sbuf.append("<th>所在行</th>" + Layout.LINE_SEP);
		}
		sbuf.append("<th>操作人</th>");
		sbuf.append("<th>信息</th>" + Layout.LINE_SEP);
		sbuf.append("</tr>" + Layout.LINE_SEP);
		sbuf.append("<br></br>" + Layout.LINE_SEP);
		return sbuf.toString();
	}

}

 

 

分享到:
评论

相关推荐

    hibernate+slf4j+log4j+junit包

    在Java开发领域,Hibernate、SLF4J、Log4j以及JUnit是四个非常重要的库,它们各自服务于不同的目的,但又常被一起使用以构建高效、可维护的项目。让我们来详细了解一下这些技术和它们在软件开发中的作用。 1. ...

    hibernate3.3.1接口实现包 slf4j-log4j12-1.5.2

    接下来,通过配置Hibernate的`hibernate.cfg.xml`,设置日志适配器为SLF4J: ```xml &lt;property name="hibernate.show_sql"&gt;true &lt;property name="hibernate.format_sql"&gt;true &lt;property name="hibernate.use_sql_...

    Hibernate4+SpringMVC+Junit4+log4j环境搭建Jar包

    这里我们关注的是基于Java技术栈的Web应用环境,具体包括Hibernate4、SpringMVC、JUnit4和log4j这四个核心组件。下面将详细介绍这些组件以及如何整合它们进行环境搭建。 **1. Hibernate4** Hibernate是一个开源的...

    struts+spring+hibernate+log4j+dom4j等源码

    Struts、Spring、Hibernate、Log4j和Dom4j是Java开发中常用的一系列框架和技术,它们在构建大型企业级应用时发挥着至关重要的作用。接下来,我们将详细探讨这些技术的核心概念、功能以及它们如何协同工作。 1. ...

    [SSH+Maven+Bootstrap视频教程]_17. 添加 log4j.properties 配置文件.zip

    6. **在代码中使用**:最后,你需要在Java代码中导入`log4j`的API,然后使用`Logger`类来记录日志信息。 通过本教程,你将学会如何在SSH、Maven和Bootstrap项目中配置`log4j.properties`,实现有效的日志记录和管理...

    spring jar 包 _ log4j-1.2.17.jar_commons-logging.jar

    在标题“spring jar 包 _ log4j-1.2.17.jar_commons-logging.jar”中,提到了两个重要的库文件:log4j-1.2.17.jar和commons-logging.jar,它们都是Spring框架常用的日志处理工具。现在,我们将深入探讨这两个库以及...

    ssh结合log4j例子

    2. **Struts2整合Log4j**:在Struts2应用中,可以通过配置struts.xml或使用filter来初始化Log4j,确保每个Action类都能获取到日志实例,便于跟踪请求处理过程。 3. **Hibernate与Log4j**:Hibernate的配置文件...

    slf4j-log4j12-1.6.1.jar+slf4j-api-1.6.1.jar

    SLF4J(Simple Logging Facade for Java)和Log4j是Java开发中常用的日志处理框架,它们在构建SSH(Struts、Spring、Hibernate)和MVC(Model-View-Controller)架构的Web应用程序时扮演着至关重要的角色。...

    java log4j 应用

    Java日志框架Log4j是Java开发者非常常用的一个工具,尤其在处理系统日志记录时。Log4j的强大之处在于它的灵活性、可配置性和高效性,使得开发人员能够精确地控制日志信息的生成,同时提供了多种日志级别,便于调试和...

    hibernate 常用核心包

    7. **logging**: Hibernate 使用日志框架,如 SLF4J 或 Log4j,用于记录应用程序的运行日志,便于调试和问题排查。 在使用 Hibernate 时,开发者还需要配置 Hibernate 的属性,例如数据库连接信息、方言、缓存策略...

    log4j.properties参数详解word

    log4j作为一款强大的日志框架,其配置文件log4j.properties提供了丰富的参数设置,使得日志输出可定制化。本文将详细解析log4j.properties中的各项参数,以帮助开发者更好地理解和使用。 首先,我们要了解日志输出...

    hibernate里面常用jar包

    3. **dom4j-x.x.x.jar**:这是一个XML处理库,Hibernate使用它来处理XML配置文件,如hibernate.cfg.xml,以及XML形式的映射文件,如.hbm.xml,这些文件定义了实体类与数据库表之间的映射关系。 4. **jta-x.x.x.jar*...

    spring与hibernate几个外载常用包

    SLF4J绑定到Log4j 1.2.14,这是Apache Log4j的一个版本,Log4j是一个广泛使用的日志记录库,提供灵活的日志配置和丰富的日志级别。SLF4J使得在项目中切换日志框架变得简单,而无需修改代码。 接着,`log4j-1.2.14....

    所有工具jar包ant+charDirector+dojo+dom+hibernate+junite+log4j+spring+struts+xml+jspSmartUpload.jar

    标题中的“所有工具jar包ant+charDirector+dojo+dom+hibernate+junite+log4j+spring+struts+xml+jspSmartUpload.jar”指的是一个包含多种Java开发常用的库和框架的集合,这些库和框架对于Java Web开发者来说至关重要...

    Maven多模块 + Spring4.0.6 + SpringMVC4.0.6 + Mybatis 3.2.7 + log4j 2.1

    这个项目使用了Maven进行模块化管理,版本分别对应于Spring 4.0.6、SpringMVC 4.0.6和Mybatis 3.2.7,日志处理则采用了log4j 2.1。下面将详细讲解这些技术及其在项目中的应用。 **Maven多模块项目** Maven是一个...

    Hibernate常用的jar包和两个配置文件

    7. **slf4j-api.jar** 和 **slf4j-log4j12.jar**:简单日志门面(SLF4J)和具体实现Log4j,用于记录Hibernate的日志信息。 8. **javassist.jar**:动态字节码生成库,Hibernate用它来实现运行时的类增强。 9. **...

    hibernate框架必备jar包

    在Hibernate中,通过log4j.properties文件配置,可以方便地管理框架的日志信息,避免日志记录出现问题。 7. **dom4j-1.6.1.jar**:DOM4J是一个Java XML API,提供了丰富的XML处理功能,包括解析、创建和修改XML文档...

    oracle的hibernate配置文件

    为了便于调试和问题排查,可以配置日志框架,如Log4j或SLF4J: ```xml &lt;property name="hibernate.archive.autodetection"&gt;class, hbm &lt;property name="hibernate.show_sql"&gt;true &lt;property name="hibernate....

    hibernate5常用的jar包集合(连接mysql)

    5. **其他依赖**:Hibernate 5可能还需要其他一些库,如slf4j-api.jar和slf4j-log4j12.jar,它们提供了简单日志门面(SLF4J)的接口和实现,使得日志框架的选择更加灵活。 6. **实体管理**:在Hibernate中,实体类...

Global site tag (gtag.js) - Google Analytics