- 浏览: 1357180 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (4)
- Struts1 (16)
- Spring (9)
- Hibernate (5)
- AJAX (16)
- MS Server (9)
- Oracle (35)
- 测试技术 (5)
- 其他 (37)
- JSF (1)
- EJB (5)
- ASP.NET (9)
- iBATIS (5)
- Struts Spring Hibernate (2)
- HTML (12)
- Eclipse使用 (5)
- 设计模式 (5)
- JSP (32)
- 正则表达式 (2)
- 服务器 (12)
- Java基础 (48)
- MySQL (4)
- 面试 (22)
- UML (1)
- 数据结构 (3)
- Ant (2)
- 规范 (4)
- JavaScript (29)
- 软件使用及技巧 (25)
- PHP (1)
- DWR (3)
- FreeMarker (1)
- ExtJs (17)
- JFreeChart (9)
- Reports (2)
- JavaException (1)
- Java Mail (1)
- Flex (9)
- 异常 (12)
- Log4j (2)
- WebService (1)
- jQuery (1)
- Sybase (2)
- myeclipse_plugin (2)
- Linux (5)
- jbpm (2)
- SCM (1)
- mongoDB (1)
最新评论
-
lihua2008love:
<typeAlias alias="User& ...
IBATIS简单操作 -
lihua2008love:
...
关于项目框架设计的一点学习 -
c_jinglin:
我使用<OBJECT CLASSID="cls ...
这就是个静态页面通过js控制mscomm对某com设备进行访问的例子. -
zlbjava:
赞,用了还不错
java获取请求的ip地址,并解析ip所属地区 -
完美天龙:
cs842813290 写道楼主,我明白的地方:在链表已有N个 ...
JAVA实现双向链表
虽然以前一直在用log4j,但是对其配置不甚了了,突然间因为需解决某些问题,要理解log4j的配置,
然而用google搜了一下,却发现网上没有一个简单直观的说明,于是只好看log4j的官方介绍,终于
理解了log4j的配置用法,以下是我对log4j配置的一点认识,如有谬误还请不吝赐教.
首先我们搞清楚log4j能干什么,简单来说就是提供一个记录不同级别信息内容的日志工具,
可以把不同级别,不同包路径的信息,以指定格式输出到多种设备(控制台,文件等)
在程序中,可以以以下方式来使用
Log log = org.apache.commons.logging.LogFactory.LogFactory.getLog(yourClassName.class);
log.debug("debug message -------------------");
log.info("info message ******************");
log.warn("warn message +++++++++++++++");
log.error("error msg=================");
本文主要讲的是如何配置log4j,先让我们先看看一个典型的log4j配置:
==========log4j.properties==================
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH\:mm\:ss.SSS} %-5p [%F\:%L]%x %m%n
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=D:/workspace/log4jtest/log/application.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.fileout.MaxBackupIndex=10
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=DEBUG,stdout
===================================
这个文件可以划为三小块
===========第一块定义了一个名为 stdout 的appender和layout (appender,layout的概念后面再解释,目前先记着有这样两个名词):
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
定义stdout的实际输出实现类,从这个appender实现类名可以猜到,这个类是负责控制台输出的。
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
定义stdout的输出装饰器
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH\:mm\:ss.SSS} %-5p [%F\:%L]%x %m%n
装饰器参数配置
============第二块定义了一个名为 fileout 的appender和layout:
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
同理可猜这个实现类是输出到文件的
log4j.appender.fileout.File=D:/workspace/log4jtest/log/application.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.fileout.MaxBackupIndex=10
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n
============第三块定义了名字分别为rootCategory,log4j.logger.com.wolfsquare.log2的两个logger
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=DEBUG,stdout
rootCategory logger是缺省的logger,记录所有的包的信息输出。
第二个logger是只输出指定包com.wolfsquare.log2下的日志信息。
那么INFO,DEBUG又是什么意思呢,他们是信息的分级标识,通过继承实现这个实现自定义级别的分级。
第三块配置两句的意思是这样的:
rootCategory 把所有类的INFO级别以上的信息输出到stdout和fileout两个appender中,
logger.com.wolfsquare.log2,把com.wolfsquare.log2包中的所有类(包括子包)DEBUG级别(含)以上的信息输出到stdout 中
一个logger可以输出到很多个设备中(appender),如果需要增加输出设备则用分号分隔开appender名称即可。
输出信息的分类级别是DEBUG > INFO > WARN > ERROR,信息细节由细到粗,指定输出某一级别的信息时,
过细的信息输出将会被忽略
如果一个配置中有多个logger,他们之间会有什么关系呢?答案是,在输出上,他们没有任何关系,都是独立运作的,
不相关的,但是在配置上,父包的配置会传给子包,如果子包没有另外定义配置的话。
例如上面配置文件中的两个logger:
log4j.logger.com.wolfsquare
log4j.logger.com.wolfsquare.log2
这里认为 log4j.logger.com.wolfsquare.log2 继承自 log4j.logger.com.wolfsquare,他们的配置声明如下:
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=,stdout
注意第二句没有指定输出级别,那么根据配置继承规则会继承父logger的配置,在这里就是INFO。
同时需要强调的是,如果两个logger有继承关系,且输出到同一个appender,根据输出独立原则,那么将会出现两行一样的信息,
例如上面的两个logger定义会导致这样的情况。
最后以一幅图来概括:
然而用google搜了一下,却发现网上没有一个简单直观的说明,于是只好看log4j的官方介绍,终于
理解了log4j的配置用法,以下是我对log4j配置的一点认识,如有谬误还请不吝赐教.
首先我们搞清楚log4j能干什么,简单来说就是提供一个记录不同级别信息内容的日志工具,
可以把不同级别,不同包路径的信息,以指定格式输出到多种设备(控制台,文件等)
在程序中,可以以以下方式来使用
Log log = org.apache.commons.logging.LogFactory.LogFactory.getLog(yourClassName.class);
log.debug("debug message -------------------");
log.info("info message ******************");
log.warn("warn message +++++++++++++++");
log.error("error msg=================");
本文主要讲的是如何配置log4j,先让我们先看看一个典型的log4j配置:
==========log4j.properties==================
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH\:mm\:ss.SSS} %-5p [%F\:%L]%x %m%n
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=D:/workspace/log4jtest/log/application.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.fileout.MaxBackupIndex=10
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=DEBUG,stdout
===================================
这个文件可以划为三小块
===========第一块定义了一个名为 stdout 的appender和layout (appender,layout的概念后面再解释,目前先记着有这样两个名词):
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
定义stdout的实际输出实现类,从这个appender实现类名可以猜到,这个类是负责控制台输出的。
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
定义stdout的输出装饰器
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd HH\:mm\:ss.SSS} %-5p [%F\:%L]%x %m%n
装饰器参数配置
============第二块定义了一个名为 fileout 的appender和layout:
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
同理可猜这个实现类是输出到文件的
log4j.appender.fileout.File=D:/workspace/log4jtest/log/application.log
log4j.appender.fileout.MaxFileSize=10000KB
log4j.appender.fileout.MaxBackupIndex=10
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n
============第三块定义了名字分别为rootCategory,log4j.logger.com.wolfsquare.log2的两个logger
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=DEBUG,stdout
rootCategory logger是缺省的logger,记录所有的包的信息输出。
第二个logger是只输出指定包com.wolfsquare.log2下的日志信息。
那么INFO,DEBUG又是什么意思呢,他们是信息的分级标识,通过继承实现这个实现自定义级别的分级。
第三块配置两句的意思是这样的:
rootCategory 把所有类的INFO级别以上的信息输出到stdout和fileout两个appender中,
logger.com.wolfsquare.log2,把com.wolfsquare.log2包中的所有类(包括子包)DEBUG级别(含)以上的信息输出到stdout 中
一个logger可以输出到很多个设备中(appender),如果需要增加输出设备则用分号分隔开appender名称即可。
输出信息的分类级别是DEBUG > INFO > WARN > ERROR,信息细节由细到粗,指定输出某一级别的信息时,
过细的信息输出将会被忽略
如果一个配置中有多个logger,他们之间会有什么关系呢?答案是,在输出上,他们没有任何关系,都是独立运作的,
不相关的,但是在配置上,父包的配置会传给子包,如果子包没有另外定义配置的话。
例如上面配置文件中的两个logger:
log4j.logger.com.wolfsquare
log4j.logger.com.wolfsquare.log2
这里认为 log4j.logger.com.wolfsquare.log2 继承自 log4j.logger.com.wolfsquare,他们的配置声明如下:
log4j.rootCategory=INFO, stdout, fileout
log4j.logger.com.wolfsquare.log2=,stdout
注意第二句没有指定输出级别,那么根据配置继承规则会继承父logger的配置,在这里就是INFO。
同时需要强调的是,如果两个logger有继承关系,且输出到同一个appender,根据输出独立原则,那么将会出现两行一样的信息,
例如上面的两个logger定义会导致这样的情况。
最后以一幅图来概括:
发表评论
-
Web开发通用监控类解决方案(代码零侵入性)
2009-07-01 14:00 1210我们开发网站的过程中,经常会碰到这种情况,当调用某个类中函数的 ... -
java获取请求的ip地址,并解析ip所属地区
2009-06-01 09:05 9090每次看见QQ上面能够显示对方的ip和地址让人觉得舒服。。刚刚无 ... -
jsp是上传图片加水印
2009-05-05 14:46 1542参考附件. -
JSP 中路径相关的常用解决办法
2009-04-22 15:58 1939<%@ page language="ja ... -
Jsp页面弹出输入对话框的实现收藏
2009-01-16 16:48 4007在写JSP页面的时候,有时需要点击一个按钮弹出一个输入对话框, ... -
log4j xml配置详解
2008-12-30 08:07 15572<?xml version="1.0" ... -
一个关于java.net.Socket的超时的问题
2008-12-26 10:44 5041从异常信息中,可以看到是read timed out,应该是S ... -
防止刷新带来的重复提交
2008-10-08 14:17 1535------------------------------- ... -
防止盗链
2008-09-04 22:28 1585<%=request.getHeader("R ... -
ip 验证
2008-08-31 23:38 1230if(kk_BlacklistVehicle_UserEnro ... -
用户登陆 封装
2008-08-31 23:37 1196首先要有一个封装类,我用UserInfo package d ... -
加密算法SHA-1,SHA-256,SHA-512,MD2,MD5
2008-08-31 23:33 6197自定义某种算法 package test; ... -
Java 调用 Oracle 存储过程返回结果集
2008-08-12 08:16 2601Oracle 存储过程返回结果集用 ref cursor 实现 ... -
分页技术
2008-07-19 11:33 1419在使用数据库的过程中,不可避免的需要使用到分页的功能,可是JD ... -
对分页的封装
2008-07-16 19:59 1891package com.bjsxt.oa.web; im ... -
Pagger-taglib分页
2008-07-16 17:57 1425<%@ page language="java ... -
JavaScirpt和JSP数据数据交互使用问题
2008-07-03 21:53 1511一、页面中的JavaScript的数据如何提交给后台的jsp程 ... -
用Cookie实现的购物车
2008-07-02 23:17 8313Cusorderitem.java 封装了相关的商品购买信息 ... -
Servlet中文API文档
2008-06-30 14:08 4165基本类和接口 一、javax. ... -
控制 Web 缓存
2008-06-19 21:11 1300控制 Web 缓存 假设两个并发用户(用户 A 和用户 ...
相关推荐
16. 扩展Log4j配置(ExtendingLog4jConfiguration):这部分可能是关于如何通过编程方式扩展Log4j配置的详细信息。 17. 自定义日志级别(CustomLogLevels):Log4j允许创建自定义日志级别来满足特定的日志需求。 ...
在深入探讨`log4j.xml`配置文件之前,我们先简要了解Log4j框架。Log4j是Apache的一个开放源码项目,通过使用Log4j,我们可以控制日志信息输送的目的地(控制台、文件等)、日志信息的格式,以及哪些日志信息将被输出...
本章节简要介绍了 Log4j2 的历史和发展,以及它如何从一个早期项目发展成为 Java 开发者广泛使用的日志框架。Log4j2 是 Apache 软件基金会下的一个开源项目,其主要功能是提供一种灵活且高效的方式来记录应用中的...
weblogic,log4j,druid,hibernate,spring,struts2,hutoolDb,Oracle连接池配置,连接泄露检测及简要原理说明 连接关了关,怎么用druid检测
`log4cpp`是一款广受欢迎的C++日志库,源自Java界的`log4j`,旨在为C++开发者提供强大的日志记录功能。这款库设计灵活,易于使用,能够帮助程序员在开发过程中方便地进行调试、记录运行信息和错误跟踪。`log4cpp-...
在`log4j.properties`配置文件中,添加`CatAppender`,以便将日志发送给CAT服务器: ``` log4j.rootCategory=INFO,app,stdout,catlog log4j.appender.cat=com.dianping.cat.log4j.CatAppender ``` 4. **监控URL...
关于iBatis的依赖库,包括`ibatis-common.jar`、`ibatis-sqlmap.jar`、`commons-logging-1.1.jar`、`log4j.jar`、`Commons-dbcp-1.2.1.jar`和`oscache-2.0.2-22Jan04.jar`。其中,`commons-logging`和`log4j`是日志...
在MyBatis中,你需要在类路径下提供log4j.properties或log4j.xml配置文件,设置所需的日志级别和输出目的地。 2. **SLF4J(Simple Logging Facade for Java)**:这是一个日志门面,允许用户在运行时插入所需的日志...
`Log4jConvenient`可能是`Log4j2`的一个组件,`Log4j2`是`Log4j`的升级版,提供了更好的性能和更丰富的功能,包括异步日志记录、动态配置等。`Convenient`可能指的是它提供了一种更简洁、更易用的API,使得开发者...
MeyboMail Web(Java)开源简化_meybomailweb 一、安装简要说明 1、安装JDK1.4.2以上版本(注意配置java_home路径) 2、安装tomcat 3、把本下载的全部程序文件拷贝到tomcat的webapps\...3、系统使用Log4j-1.2 作为日志系统
- 详细说明了如何使用 Log4j Repository Selector 来指定 log4j.xml 文件的位置。 **8.4 JDK java.util.logging** 比较了 JDK 自带的日志框架与 Log4j 的差异。 #### 八、JBoss 测试套件 测试套件是确保软件质量...
本文将深入探讨JSP和Servlet的相关知识,以及与它们密切相关的Dom4j和Log4j,并简要提及AJAX。 首先,J2EE(Java 2 Platform, Enterprise Edition)是一个为企业级应用提供服务的平台,它包含了多种技术和规范,如...
logback是当前流行的日志框架,它与log4j有着相同的源,并提供了更为强大的功能。本文主要介绍如何在Grails3项目中配置logback,实现日志的详细配置,包括按天生成独立的日志文件、日志格式设置以及对日志文件大小的...
然后,可以在 resources 目录下创建 log4j2.xml 文件来配置 Log4j2。 本文介绍了 Spring Boot 的日志配置,包括日志级别设置、日志文件路径设置、控制台输出日志格式设置等。可以根据需要选择合适的日志配置方式来...
8. **日志管理**:如Log4j或Logback,用于记录系统运行信息。 9. **异常处理**:全局异常处理机制,统一返回错误信息。 10. **单元测试**:使用JUnit或Mockito进行测试,确保代码质量。 以上就是基于给定信息的详细...
3、系统使用Log4j-1.2 作为日志系统 三、系统设置(确保论坛程序正常运行后执行) 修改或增加WEB-INF\classes\mailserver.xml文件中的data节点的内容,可以修改或增加域名。mailserver.xml文件的data节点数据格式如下...
8. **commons-logging-api-1.1.jar**:Apache Commons Logging API提供了一个统一的日志接口,允许开发者选择不同的日志实现,如log4j、java.util.logging等。在Struts2中,这个库用来记录框架内部的调试信息和错误...