- 浏览: 543681 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (230)
- java (87)
- c/c++/c# (39)
- ASP.net MVC (4)
- eclipse/visual studio (3)
- tomcat/weblogic/jetty (13)
- linux/unix/windows (20)
- html/javascript/jquery/kendo/bootstrap/layui/vue/react (31)
- hibernate/struts/spring/mybatis/springboot (21)
- lucene/solr/ELK (2)
- shiro (0)
- oracle/sqlserver/mysql/postgresql (23)
- shell/python/ruby (6)
- android (0)
- maven/ant (1)
- freemarker/thymeleaf/velocity (1)
- open source project (41)
- cache/memcached/redis (0)
- nosql/hadoop/hbase/mongodb (0)
- system architecture/dubbo/zookeeper (0)
- software testing (0)
- system optimization (0)
- system security (0)
- tcp/udp/http (2)
- roller/wordpress (2)
- 工具收藏 (8)
- 文摘 (4)
- 生活 (0)
最新评论
-
coconut_zhang:
这个demo 非常完整了,是指下面说的那个html 模版,模版 ...
flying sauser, thymeleaf实现PDF文件下载 -
a93456:
你好,你有完整的demo吗? String template这 ...
flying sauser, thymeleaf实现PDF文件下载 -
yujiaao:
fn 函数循环是没有必要的啊,可以改成
protecte ...
Java 笛卡尔积算法的简单实现 -
安静听歌:
设置了.setUseTemporaryFileDuringWr ...
使用jxl导出大数据量EXCEL时内存溢出的解决办法 -
q280499693:
写的很详细,但是我现在想知道他们是怎么定位log4j.prop ...
关于SLF4J结合Log4j使用时日志输出与指定的log4j.properties不同
首先我们搞清楚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定义会导致这样的情况。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG
#这里定义能显示到的最低级别,若定义到INFO级别,则看不到DEBUG级别的信息了~!
log4j.rootLogger=DEBUG
#将DAO层log记录到DAOLog,allLog中
log4j.logger.DAO=DEBUG,A2,A4
#将逻辑层log记录到BusinessLog,allLog中
log4j.logger.Businesslog=DEBUG,A3,A4
#A1--打印到屏幕上
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p [%t] %37c %3x - %m%n
#A2--打印到文件DAOLog中--专门为DAO层服务
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=DAOLog
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#A3--打印到文件BusinessLog中--专门记录逻辑处理层服务log信息
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.file=BusinessLog
log4j.appender.A3.DatePattern='.'yyyy-MM-dd
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#A4--打印到文件alllog中--记录所有log信息
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.file=alllog
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#Appender的使用
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=demo
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%m%n
#Layout的配置
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
ConversionPattern参数的格式含义
格式名 含义
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
#1 定义了两个输出端
log4j.rootLogger = INFO, A1, A2,A3
#2 定义A1输出到控制器
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
#3 定义A1的布局模式为PatternLayout
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
#4 定义A1的输出格式
log4j.appender.A1.layout.ConversionPattern = %-4r [%t] %-5p %c - %m%n
#5 定义A2输出到文件
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
#6 定义A2要输出到哪一个文件
log4j.appender.A2.File = F:nepalonclassesexample3.log
#7 定义A2的输出文件的最大长度
log4j.appender.A2.MaxFileSize = 1KB
#8 定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex = 3
#9 定义A2的布局模式为PatternLayout
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
#10 定义A2的输出格式
log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
发表评论
-
easypoi 按照模板到出excel并合并单元格
2022-11-10 21:46 149这是entity类,注解的mergeVertical是纵向合 ... -
Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat
2017-03-31 14:59 1368一、概述 1、问题描述 使用Java处 ... -
logback的使用和logback.xml详解
2017-03-09 11:20 2194一、logback的介绍 Logback是由log4j ... -
jxls操作excel文件
2017-03-03 14:51 1104JXLS是基于Jakarta POI API的Excel报表 ... -
eclipse插件Maven添加依赖查询无结果的解决方法(Select Dependency doesn't work)
2016-04-22 08:33 738在eclipse中用过maven的可能都遇到过这种情况,我 ... -
Java_Ant详解
2015-06-15 16:54 7331,什么是antant是构建工 ... -
httpClient通过代理(Http Proxy)进行请求
2014-09-16 14:18 1237httpClient通过代理(Http Proxy)进行请求 ... -
httpclient上传文件及传参数
2014-09-16 11:07 11648用到的包有commons-httpclient-3.0.1. ... -
Java文件下载的几种方式
2013-08-19 14:15 879public HttpServletResponse dow ... -
http上传文件深度解析-高性能http传输
2013-07-23 10:41 9774最近在做web服务器的时候将一些应用集成在了服务器里面,比 ... -
plupload实现多图片上传
2013-07-19 16:12 23304最近发现一个非常牛的上传组件(http://www.plu ... -
java servlet common-fileupload 实现的文件批量上传
2013-07-18 14:31 6429结合前辈们的代码, 写了个用servlet 和 common ... -
调用axis2 WebService三种方法
2013-06-28 13:41 1800第一:简单的使用axis2包自己实现调用 package ... -
java-jsch实现sftp文件操作
2013-06-26 13:55 3678(曾在天涯)的文章详细讲解了jsch中的函数以及用法 ht ... -
url encode的问题
2012-11-06 08:27 60501.urlencode和decode 字符的编码和解码在有中 ... -
Java集合运算(交集,并集,差集)
2012-11-02 14:59 12997在实现数据挖掘一些算法或者是利用空间向量模型来发现相似文档的时 ... -
使用jxl导出大数据量EXCEL时内存溢出的解决办法
2012-11-02 14:05 11835POI或者JXL在导出大量数据的时候,由于它们将每一个单元格生 ... -
Java 笛卡尔积算法的简单实现
2012-10-31 15:26 9634笛卡尔积算法的Java实现: (1)循环内,每次只有一列向下 ... -
java实现求一个项目集合任意元子集的通用算法
2012-10-31 15:25 4在关联规则挖掘过程中,经常涉及到求一个频繁项目集的n元子集,在 ... -
java实现求一个项目集合任意元子集的通用算法
2012-10-31 15:21 1506在关联规则挖掘过程中,经常涉及到求一个频繁项目集的n元子集,在 ...
相关推荐
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,实现日志的详细配置,包括按天生成独立的日志文件、日志格式设置以及对日志文件大小的...
- **使用Log4J**:对于那些倾向于使用Log4J的开发者,Spring也提供了相应的支持。 #### Spring 3.0 新特性与增强 Spring 3.0带来了大量新功能和改进,主要包括: - **Java 5+支持**:全面升级到Java 5及以上版本...
然后,可以在 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中,这个库用来记录框架内部的调试信息和错误...