- 浏览: 197487 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 1080查询2个表比较然后做下拉菜单显示 这段代码是在Main ... -
菜单配置上下移功能
2008-09-06 05:47 1096在数据库中 System.do?method=toM ... -
where 1 = 1
2008-09-04 17:44 1300[转]sql语句中where 1=1的作用 2008-08-2 ... -
工作中的连接池用法
2008-09-03 06:39 1141实际工作中连接池的应用 在 web.xml中 &l ... -
spring注入的例子
2008-08-31 21:35 1075关于注入机制的例子 在applicationContext. ... -
log4j
2008-08-22 13:39 786log4j 在强调可重用组件开发的今天,除了自己从 ... -
servlet中配置文件web.xml中的参数context-param和init-param区别
2008-08-22 13:05 2712servlet中配置文件web.xml中的参数context- ... -
在myeclipse中实现javascipt 的快捷键
2008-08-07 03:38 889在windows下面的preference下面的Genaral ... -
Myeclipse中,在导入脚本中出现乱码的问题的解决方法。
2008-08-07 03:36 1695在windows 下面的preferences 下面的Gena ... -
多个文件上传的功能
2008-08-07 02:16 3324这里用到的是用commons-fileupload-1.2.1 ... -
Mysql+tomcat连接池自己的例子
2008-07-31 23:18 22841.把MySQL-Connector-java-3.0.12- ... -
Mysql+tomcat连接池的配置实例
2008-07-31 23:03 2697特别感谢:robustwang 在Java Web开发中都 ... -
从数据库中读取数据(AJAX版本)
2008-07-30 21:33 3969现在是用ajax 做从数据库读取数据的例子 1个jsp Re ... -
从数据库中读取数据(直连版本)
2008-07-30 18:06 1785从数据库中读取数据(直连版本) 下面的这里例子实现的是在注册 ... -
Tomcat 的数据库连接池设置与应用
2008-07-29 21:33 1066Tomcat 的数据库连接池设置与应用 1.将数据库驱 ... -
session对象使用示例
2008-07-27 19:41 1141携带用户名往下跳转的 ... -
JDBC使用步骤
2008-07-24 18:42 6254分为6个步骤 1. load the driver (1) ... -
CSS鼠标移至此处, 背景变化例子
2008-07-24 17:33 1816鼠标移至此处, 背景变化的CSS例子 保存格式以jsp或者是 ... -
CSS背景颜色例子
2008-07-24 17:28 1945一个 有关 CSS 样式的小例子 建立一个 1.jsp ... -
Struts学习笔记2——文件过滤
2008-07-23 22:09 998文件过滤功能 根据前面的struts学习笔记1 来继续我们下面 ...
相关推荐
log4j实例log4j实例log4j实例log4j实例log4j实例log4j实例
log4j实例log4j实例log4j实例log4j实例log4j实例log4j实例log4j实例log4j实例log4j实例
Log4j实例,Log4j
log4j帮助文档及实例 非常实用的log4j对日志的操作。
在网上找不到好的实现,自己写了一个,spring log4j 实例
详细介绍Log4j使用实例
log4j日志写入数据库实例
springmvc5+hibernate5+junit4+log4j2整合实例 包含 代码实例 数据库建表sql 运行环境 myeclipes2015 jdk 1.8 tomcat 8.0
简单的log4j实例,能够快速了解如何使用log4j生产文件
log4j实例,包括库文件和典型示例,log4j-1.2.9.jar
log4j.properties的具体配置方法和实例,其中有我自己总接的方法和下载的原理TXT文档,以及我自己写的实例,初学者还是可以参考的
Log4j+MongoDB Demo
log4j配置实例:配置邮件日志,配置数据库日志,配置日志记录。
log4j的实例代码+文档 很轻松上手log4j
实现了log4j的log4j.propertis和log4j.xml两张配置方式
log4j配置实例(含配调用实例、log4j.properties及jar包)
此文件为Java使用log4j进行日志记录的一个使用实例,适合于Java后端初学者使用
Log4j学习笔记和一套完整定义实例 精辟
NULL 博文链接:https://helloworlda.iteye.com/blog/1337698
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...