- 浏览: 201499 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qiankai86:
s
多个文件上传的功能 -
zhjxzhj:
经测试不能用
PDF破解软件 -
meadlai:
很不错...哈哈...
PDF破解软件 -
talin2010:
刚学了,复习一下。。
Mysql+tomcat连接池自己的例子 -
yshuaiwen:
上面的方法都不怎么好,太麻烦,而且都需要改tomcat的xml ...
Mysql+tomcat连接池的配置实例
程序启动的时候首先启动web.xml中的servlet中log4j-init文件,这个文件的位置是com.et.bean.servlet.Log4jInit <init-param>是里面含有的参数,这个参数是WEB-INF/log.xml。
1.在web.xml文件中加入,
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.et.bean.servlet.Log4jInit</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/log.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
与之对应的
<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
这段如果不写的话也可以正常执行log4j的功能。
2.把log4j.xml文件copy到WEB-INF 文件夹内
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- 配置通道名称:console和输出方式:org.apache.log4j.RollingFileAppender
其中输出方式appender有5种,分别为
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文档)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文档)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)-->
<!--Threshold是个全局的过滤器,他将把低于所配置的level的信息过滤不显示出来-->
<!--level:是日记记录的优先级,优先级由高到低分为
OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这四个级别。-->
<!-- 输出端的layout是哪种类型,可以是
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) -->
<!-- 如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
[QC]是log信息的开头,可以为任意字符,一般为项目简称。 -->
<!--输出方式:输出到控制台-->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n" />
</layout>
</appender>
<!--输出方式:输出到文件,每日-->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<param name="File" value="E:\\qc.log"/> <!-- 文件路径 -->
<param name="Append" value="false"/> <!--Append是配置是否在重新启动服务时,在原有日志的基础添加新日志 -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/> <!-- 日期形式输出文件 -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<!--输出方式:输出到文件-->
<appender name="comm" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\log4j.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="5000KB" /> <!-- 文件最大的容量 -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n"/>
</layout>
</appender>
<!-- 输出方式:输出到文件 -->
<appender name="local" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\qc.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="5000KB" />
<layout class="org.apache.log4j.PatternLayout"> <!-- 文件的布局 -->
<param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n" /> <!-- 文件的输出格式 -->
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter"> <!-- 过滤等级-->
<param name="levelMin" value="warn" />
<param name="levelMax" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<!-- category是指定我们的项目下的具体包下的所有类的等级(priority)为DEBUG,info,warn,error等 ,输出方式(appender)是.. -->
<category name="com.et.dao.impl">
<priority value="DEBUG" />
<appender-ref ref="console" />
<appender-ref ref="comm" />
</category>
</log4j:configuration>
3.建立个 servlet 包,把Log4jInit 文件放入到文件夹下面
package com.et.bean.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.PropertyConfigurator;
public class Log4jInit extends HttpServlet {
public void init() {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j-init-file");
// if the log4j-init-file is not set, then no point in trying
if(file != null) {
PropertyConfigurator.configure(prefix+file);
System.out.println("Init Log4j success!");
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res) {
}
}
4.在需要的生成日志的地方加入static Logger logger = Logger.getLogger(TousuDAO.class);
public class TousuDAO extends BaseDAO {
static Logger logger = Logger.getLogger(TousuDAO.class);
其中Logger.getLogger(TousuDAO.class); 与public class TousuDAO 的DAO要一致,传说中的反射机制。
在执行这个工程的时候就会在相应的目录下生成日志文件,内容类似
2008-08-22 09:34:54,234 [http-8080-2] com.et.dao.impl.WorkInfoDAO.getWorkInfoList(WorkInfoDAO.java:32)
[INFO] 1afafewefwe,
2008-08-22 09:34:54,250 [http-8080-2] com.et.dao.impl.WorkInfoDAO.getWorkInfoList(WorkInfoDAO.java:34)
[DEBUG] abcder
2008-08-22 09:34:58,296 [http-8080-2]
1.在web.xml文件中加入,
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.et.bean.servlet.Log4jInit</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/log.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
与之对应的
<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
这段如果不写的话也可以正常执行log4j的功能。
2.把log4j.xml文件copy到WEB-INF 文件夹内
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- 配置通道名称:console和输出方式:org.apache.log4j.RollingFileAppender
其中输出方式appender有5种,分别为
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文档)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文档)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)-->
<!--Threshold是个全局的过滤器,他将把低于所配置的level的信息过滤不显示出来-->
<!--level:是日记记录的优先级,优先级由高到低分为
OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这四个级别。-->
<!-- 输出端的layout是哪种类型,可以是
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) -->
<!-- 如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
[QC]是log信息的开头,可以为任意字符,一般为项目简称。 -->
<!--输出方式:输出到控制台-->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n" />
</layout>
</appender>
<!--输出方式:输出到文件,每日-->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<param name="File" value="E:\\qc.log"/> <!-- 文件路径 -->
<param name="Append" value="false"/> <!--Append是配置是否在重新启动服务时,在原有日志的基础添加新日志 -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/> <!-- 日期形式输出文件 -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<!--输出方式:输出到文件-->
<appender name="comm" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\log4j.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="5000KB" /> <!-- 文件最大的容量 -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n"/>
</layout>
</appender>
<!-- 输出方式:输出到文件 -->
<appender name="local" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="E:\\qc.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="5000KB" />
<layout class="org.apache.log4j.PatternLayout"> <!-- 文件的布局 -->
<param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n" /> <!-- 文件的输出格式 -->
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter"> <!-- 过滤等级-->
<param name="levelMin" value="warn" />
<param name="levelMax" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<!-- category是指定我们的项目下的具体包下的所有类的等级(priority)为DEBUG,info,warn,error等 ,输出方式(appender)是.. -->
<category name="com.et.dao.impl">
<priority value="DEBUG" />
<appender-ref ref="console" />
<appender-ref ref="comm" />
</category>
</log4j:configuration>
3.建立个 servlet 包,把Log4jInit 文件放入到文件夹下面
package com.et.bean.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.PropertyConfigurator;
public class Log4jInit extends HttpServlet {
public void init() {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j-init-file");
// if the log4j-init-file is not set, then no point in trying
if(file != null) {
PropertyConfigurator.configure(prefix+file);
System.out.println("Init Log4j success!");
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res) {
}
}
4.在需要的生成日志的地方加入static Logger logger = Logger.getLogger(TousuDAO.class);
public class TousuDAO extends BaseDAO {
static Logger logger = Logger.getLogger(TousuDAO.class);
其中Logger.getLogger(TousuDAO.class); 与public class TousuDAO 的DAO要一致,传说中的反射机制。
在执行这个工程的时候就会在相应的目录下生成日志文件,内容类似
2008-08-22 09:34:54,234 [http-8080-2] com.et.dao.impl.WorkInfoDAO.getWorkInfoList(WorkInfoDAO.java:32)
[INFO] 1afafewefwe,
2008-08-22 09:34:54,250 [http-8080-2] com.et.dao.impl.WorkInfoDAO.getWorkInfoList(WorkInfoDAO.java:34)
[DEBUG] abcder
2008-08-22 09:34:58,296 [http-8080-2]
发表评论
-
查询2个表比较然后做下拉菜单显示
2008-09-20 19:06 1109查询2个表比较然后做下拉菜单显示 这段代码是在Main ... -
菜单配置上下移功能
2008-09-06 05:47 1180在数据库中 System.do?method=toM ... -
where 1 = 1
2008-09-04 17:44 1337[转]sql语句中where 1=1的作用 2008-08-2 ... -
工作中的连接池用法
2008-09-03 06:39 1165实际工作中连接池的应用 在 web.xml中 &l ... -
spring注入的例子
2008-08-31 21:35 1110关于注入机制的例子 在applicationContext. ... -
log4j
2008-08-22 13:39 821log4j 在强调可重用组件开发的今天,除了自己从 ... -
servlet中配置文件web.xml中的参数context-param和init-param区别
2008-08-22 13:05 2741servlet中配置文件web.xml中的参数context- ... -
在myeclipse中实现javascipt 的快捷键
2008-08-07 03:38 944在windows下面的preference下面的Genaral ... -
Myeclipse中,在导入脚本中出现乱码的问题的解决方法。
2008-08-07 03:36 1715在windows 下面的preferences 下面的Gena ... -
多个文件上传的功能
2008-08-07 02:16 3364这里用到的是用commons-fileupload-1.2.1 ... -
Mysql+tomcat连接池自己的例子
2008-07-31 23:18 23211.把MySQL-Connector-java-3.0.12- ... -
Mysql+tomcat连接池的配置实例
2008-07-31 23:03 2769特别感谢:robustwang 在Java Web开发中都 ... -
从数据库中读取数据(AJAX版本)
2008-07-30 21:33 4005现在是用ajax 做从数据库读取数据的例子 1个jsp Re ... -
从数据库中读取数据(直连版本)
2008-07-30 18:06 1829从数据库中读取数据(直连版本) 下面的这里例子实现的是在注册 ... -
Tomcat 的数据库连接池设置与应用
2008-07-29 21:33 1097Tomcat 的数据库连接池设置与应用 1.将数据库驱 ... -
session对象使用示例
2008-07-27 19:41 1229携带用户名往下跳转的 ... -
JDBC使用步骤
2008-07-24 18:42 6295分为6个步骤 1. load the driver (1) ... -
CSS鼠标移至此处, 背景变化例子
2008-07-24 17:33 1853鼠标移至此处, 背景变化的CSS例子 保存格式以jsp或者是 ... -
CSS背景颜色例子
2008-07-24 17:28 1979一个 有关 CSS 样式的小例子 建立一个 1.jsp ... -
Struts学习笔记2——文件过滤
2008-07-23 22:09 1028文件过滤功能 根据前面的struts学习笔记1 来继续我们下面 ...
相关推荐
Log4j是Apache组织开发的一个强大的、灵活的日志记录框架,它允许我们控制日志信息的输出级别、格式以及输出位置。本篇文章将深入探讨Log4j的多个简单实例,帮助你理解和掌握其基本用法。 首先,Log4j由三个主要...
在压缩包文件“mytest”中,可能包含了一个简单的Log4j应用实例,你可以通过查看源代码来实践上述知识点。学习和熟练运用Log4j,不仅可以提升代码的可读性和可维护性,还能在问题排查时提供关键信息,是每个Java...
本实例结合Spring和Log4j,将为你提供一个实用的日志解决方案。 首先,我们要理解Spring是如何集成Log4j的。Spring框架通过Apache Commons Logging接口来提供日志服务,而Log4j可以作为这个接口的实现。因此,我们...
Log4j的配置通常通过一个名为`log4j.properties`或`log4j.xml`的配置文件进行。这个文件定义了Logger的级别(如DEBUG、INFO、WARN、ERROR、FATAL),指定哪些类或者包应该记录日志,以及定义Appender的输出位置和...
Log4j 是一个开源的日志记录框架,由 Apache 软件基金会提供。它允许开发者根据需求配置日志等级,并灵活选择日志信息的输出方式。Log4j 的核心组件包括 Logger、Appender 和 Layout。 #### 二、Log4j 基本使用流程...
这个 log4j.properties 配置实例提供了一个完整的 Log4j 配置解决方案,涵盖了邮件日志、数据库日志和日志记录的配置。这将有助于开发者快速地实现 Log4j 的配置和日志记录。 知识点: 1. Log4j 是一个流行的 Java...
Log4j的配置通常通过一个名为log4j.properties或log4j.xml的配置文件完成。以下是一个简单的配置示例: ```properties # log4j.properties log4j.rootLogger=DEBUG, stdout, file log4j.appender.stdout=org.apache...
在IT行业中,日志管理和数据分析是至关重要的环节,特别是在大型分布式系统中。...这个"Log4j+MongoDB完整实例"就是一个很好的起点,帮助开发者了解如何将这两者结合,以实现日志数据的全生命周期管理。
**日志框架Log4j详解及配置实例** Log4j是Apache组织开发的一款强大的日志处理框架,广泛应用于Java应用程序中,提供灵活的日志记录功能。本文将详细介绍Log4j的配置方法,并通过实例帮助初学者理解其工作原理。 #...
本文将通过一个具体的实例,详细解释如何在WebLogic环境中集成并使用Log4j生成日志文件。 首先,我们需要理解Log4j的基本组件。Log4j主要由三个部分组成:配置器(Configuration)、日志器(Logger)和布局器...
首先,Log4j是一个开源的日志记录工具,它允许程序员根据不同的级别(如DEBUG、INFO、WARN、ERROR和FATAL)记录应用程序的运行情况。其核心组件包括Appender(日志输出端点)、Layout(日志格式化)和Logger(日志...
在标题“log4j实例,log4j-1.2.9.jar”中,我们看到的是Log4j的一个具体版本——1.2.9。这个版本虽然相对较旧,但它仍然是许多现有项目的基础,因为它稳定且功能齐全。 **1. Log4j的核心组件** Log4j由三个主要...
"Log4j(实例代码+文档)" 指的是一个资源包,其中包含了关于Log4j的实例代码和相关文档。Log4j是Java编程语言中的一个开源日志记录框架,由Apache软件基金会开发。它允许程序员以灵活的方式控制程序的日志输出,提供...
本文将详细探讨如何通过SLF4J接口来使用Log4j进行日志记录,并展示一个测试代码实例。 **SLF4J简介** SLF4J是一个抽象层,为各种日志框架提供了统一的API,如Logback、Log4j等。它的主要优点在于可以让你在不修改...
在本整合实例中,我们将探讨如何将Spring MVC 5、Hibernate 5、JUnit 4 和 Log4j2 集成在一起,以构建一个高效、可测试和日志记录完善的Java Web应用程序。以下是对这些技术及其整合过程的详细说明: **Spring MVC ...
Log4j的配置主要通过一个名为`log4j.properties`或`log4j.xml`的配置文件进行。这个文件定义了日志的行为,包括日志级别、输出目的地、格式等。下面是一个简单的`log4j.properties`配置示例: ```properties # 设置...
以下是一个简单的`log4j.properties`配置示例: ``` log4j.rootLogger=DEBUG, Console, File log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j....
**Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录框架,由Apache软件基金会开发。它提供了一套灵活的日志记录系统,帮助开发者在开发过程中追踪应用程序的行为,便于调试、性能分析和问题排查。Log4j...
总的来说,log4j-api-2.17.1.jar和log4j-core-2.17.1.jar是Log4j2的核心组件,它们共同构建了一个强大且可扩展的日志框架。开发者应熟悉这两个库的职责和交互方式,以便充分利用Log4j2的功能,同时确保系统的安全性...
在Log4j项目中,通常会有一个`log4j.properties`或`log4j.xml`配置文件,用于定义日志行为。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, stdout, FILE log4j.appender.stdout=org....