- 浏览: 818137 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yuhanwm910731:
我现在需要实现复选(非级联选择)的树形下拉菜单,麻烦发给我一份 ...
extjs3.X支持树型的下拉控件 -
shine1200:
“所以咱们现在设置的虚拟路径“/message/upload/ ...
weblogic虚拟路径的配置和使用(2) -
icefireforest:
Fangrn 写道jx_dream 写道楼主,我最近在做树形下 ...
extjs3.X支持树型的下拉控件 -
cloudfile:
谢谢分享!
c++库c#调用开发时需要注意的一点 -
xuweilinbegin:
我也要一份哦:xuweilin15353@163.com,谢谢 ...
extjs3.X支持树型的下拉控件
Log4j是Apache基金会的一个项目,它能为Java开发着提供功能强大使用方便的各种日志处理.当然它的版本不限于Java,还有C/C++等主流语言.我觉得它就象一把非常实用的锋利小刀,让我们的写程序时更加如鱼得水.
Log4j输出的信息分如下几类:ALL,DEBUG,INFO,ERROR,FATAL,级别从低到高,输出的内容是从多到少.从字面意思即可看出大 概,ALL指输出所有信息;DEBUG指调试信息;INFO指一般信息;ERROR指错误信息;FATAL指致命的错误信息。
输出的信息级别和内容我们可以在程序里面设置,但缺点就不够灵活,并且无法在程序运行期间进行参数调整。通过XML或Property配置文件可以在外部 控制Logger的输出,原理都一样的,只是表现形式不一样,看个人的习惯了。下面主要讲一下如何使用Property文件来灵活配置Log4j的输出。
在Log4j中你可以让信息输出到控制台(Console)、文件、远程数据数等中的其中一个或多个当中。
首先我们要先声明信息输出的级别,并且 为了能把信息输出到指定的目的地,我们要指定输出方案,如下所示:
log4j.rootLogger = DEBUG, A1,A4
DEBUG为输出信息的级别,A1,A4分别为输出方案的名称,下面我们来定义方案的具体参数。
指定该输出方案的信息输出目的地为控制台:
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
设定输出的布局为模式布局:
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
指定模式的具体参数:
log4j.appender.A1.layout.ConversionPattern =[%d{HH:mm:ss}] [%t] %-5p - %m %n
每个参数前要加%来说明,其中:
%d:日期(date),如:yyyy-MM-dd,yyyy-MM-dd HH:mm:ss等
%t:线程名称(Thread)
%-5p:信息优先级(Priority),宽度为5,左对齐。如DEBUG,FATAL等
%m:输出信息(Message)
%n:回车换行
还有其它几个象%c,%C,%F等
上面的方案A1指的是把信息输出到控制台,并且输出的格式按指定的格式输出。
我们还可以指定把信息输出到文件当中,如下为普通文件输出方案:
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
log4j.appender.A2.File = logs\\test.log
log4j.appender.A2.MaxFileSize = 1MB
log4j.appender.A2.MaxBackupIndex = 3
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern =[%d] %-4r [%t] %-5p %c %x - %m %n
输出指定的文件test.log当中,并且指定该文件最大不超过1MB,超过之后将清除后再写入。当然也可以直接用FileAppender,不进行 Rolling,那么所以的日志信息都将追加到原信息的后面。MaxBackupIndex指的是最大备份数目。以上面文件为例,当test.log到达 1MB,则它直接被修改成test.log.1,如果这个文件已存在,则修改为test.log.2,直到MaxBackupIndex。新的日志信息, 将重新生成文件test.log。当下一次达到1MB时,此时test.log.1,test.log.2,test.log.3都已存在,则直接把 test.log.3删除,把test.log修改成test.log.3。
把信息输出到远程数据库当中:
# 定义A3输出到数据库
log4j.appender.A3 = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.BufferSize = 40
log4j.appender.A3.Driver = sun.jdbc.odbc.JdbcOdbcDriver
log4j.appender.A3.URL = jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=MobileDB.mdb
log4j.appender.A3.User =
log4j.appender.A3.Password =
log4j.appender.A3.layout = org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern = INSERT INTO
log4j(createDate, thread, priority, category, message) values('%d',
'%t', '%-5p', '%c', '%m')
指定输出方案为JDBCAppender,即能过JDBC把日志自动写入到远程数据库当中。BufferSize指定缓冲区的大小,当输出内容达到缓冲区 的大小时,就把数据写入数据库一次。下面的参数依次为指暄数据库驱动名称、数据库URL地址、数据库登录用户名和密码,模式布局和Select语句。
我们也可以把信息输出到HTML文件当中,并且是按时间段自动生成文件,比如,每隔一个小时或一天、半天生成一个HTML文件:
log4j.appender.A4 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.File = logs\\log.html
log4j.appender.A4.DatePattern='.'yyyy-MM-dd-HH'.html'
log4j.appender.A4.layout = org.apache.log4j.HTMLLayout
第一个参数为指定输出方案为按日期滚动的文件方案。第二个参数指定文件名,第三个指定日期模式,最后一个指定布局为HTML布局。上面的设置会每隔一个小时产生一个HTML文件名,文件名为:log.html.2006-03-24-08.html的样子。
完整的配置文件log4j.properties如下:
log4j.rootLogger = DEBUG, A1,A4
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern =[%d{HH:mm:ss}] [%t] %-5p - %m %n
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
log4j.appender.A2.File = logs\\test.log
log4j.appender.A2.MaxFileSize = 1KB
log4j.appender.A2.MaxBackupIndex = 3
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern =[%d] %-4r [%t] %-5p %c %x - %m %n
#11区 定义A3输出到数据库
log4j.appender.A3 = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.BufferSize = 40
log4j.appender.A3.Driver = sun.jdbc.odbc.JdbcOdbcDriver
log4j.appender.A3.URL = jdbc:ODBC:driver={Microsoft Access Driver (*.mdb)};DBQ=MobileDB.mdb
log4j.appender.A3.User =
log4j.appender.A3.Password =
log4j.appender.A3.layout = org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern
= INSERT INTO log4j(createDate, thread, priority, category, message)
values('%d', '%t', '%-5p', '%c', '%m')
log4j.appender.A4 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.File = logs\\log.html
log4j.appender.A4.DatePattern='.'yyyy-MM-dd-HH'.html'
log4j.appender.A4.layout = org.apache.log4j.HTMLLayout
在程序里面只需声明使用Property配置文件来控制输出就行了,如下所示:
static Logger logger = Logger.getLogger(DHMain.class);
public static void main(String[] args) {
PropertyConfigurator.configure("conf\\log4j.properties");
logger.debug("启动..." );
}
有了Log4j,我们完全可以抛弃System.out了,用它吃力又不讨好,何苦呢?
发表评论
-
提供IT系统运维支持、系统优化方案
2012-10-26 14:46 6提供IT系统运维支持、系统优化方案,有多个运维实施经验。 ... -
Java指定编码读写文件(UTF-8)
2010-11-30 14:00 3133有时我们需要程序动态生成jsp文件,采取系统默认的编码操作的文 ... -
was6.0发布struts2项目异常
2010-11-18 18:39 2016[10-11-18 18:31:33:609 CST] 000 ... -
利用spring提供的字符编码过滤器
2010-11-14 11:55 2052<!-- spring的字符集过滤器 --> ... -
简单的几句CSS布局口诀
2010-11-10 16:41 1056简单的几句CSS布局口诀,就可以写出精简,标准的样式。 ... -
commons-email笔记
2010-11-10 14:38 1402import java.io.UnsupportedE ... -
如何解决 调用jar程序时出现 outofMemory的问题
2010-10-29 12:02 1277我们在调用 打包好的java程序时,如果程序要加载大量数据的话 ... -
GC策略的调优
2010-09-30 22:30 1655GC 策略在 G1 还没成熟的情况下,目前主要有串行、并 ... -
关于Spring和WebLogic版本兼容的一点小提示
2010-09-30 16:31 2097首先 WebLogic 的各个版本和 JDK 绑定的很紧, 或 ... -
删除WebLogic 10的缓存
2010-09-30 16:07 4671在WebLogic 10上部署了一个应用,最近作了更新并重新部 ... -
weblogic如何强制先加载web-inf/lib下的jar
2010-09-30 16:05 4831方法1: 修改WEB-INF\weblogic.xml (如 ... -
java smslib发送短信
2010-09-10 10:02 1656public class SendMessage { ... -
Spring定时器的两种实现方式
2010-09-01 21:07 1532有两种流行Spring定时 ... -
使用 Commons-Email 在邮件内容中直接嵌入图片
2010-08-31 20:25 1361我们在发送邮件的时候,如果使用HTML在邮件内容中嵌入图片,& ... -
Struts2中转换Date类型的问题
2010-08-29 09:43 1396Web开发会涉及到很多类型转换的情况。我们知道,页面中的一切值 ... -
java smslib 发送短信错误信息
2010-08-25 15:02 4272org.smslib.GatewayException: GS ... -
rxtx取代javax.comm实现Java跨平台设备端口通信
2010-08-24 08:53 2189From Rxtx <!-- start conte ... -
javascript汉字转拼音代码
2010-08-22 08:21 4611使用方法(1):pinyin.go('汉字'); //例:张家 ... -
关于IE等浏览器在下载JAR文件时的,将后缀更改为zip等问题及解决方案
2010-08-03 12:19 1237httpd.conf这个文件中的mime.types上面,打开 ... -
一句代码解决IE8兼容问题
2010-07-24 15:46 1655这篇文章就是寻求最简单的方法解决ie8兼容问题,当然这只是最简 ...
相关推荐
本文将深入探讨如何使用Log4j生成带有时间戳的日志文件,同时还会涉及到extras包的使用以及一个简单的示例。 1. **Log4j基本概念** - **日志级别**:Log4j支持多种日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL...
要实现按文件大小生成日志,我们需使用Log4j的RollingFileAppender。这个Appender会在日志文件达到预设大小时自动滚动并创建新的日志文件。以下是一个简单的`log4j.properties`配置示例: ```properties # 设置root...
在使用Log4j记录Debug日志时,确保项目中引入了相应的Log4j库,并正确配置了`log4j.properties`或`log4j.xml`文件,设置DEBUG级别,然后在代码中使用Logger对象进行日志记录。例如: ```java import org.apache.log4...
本文将详细介绍如何在Android Studio中使用log4j库来记录日志,并实现按照日志文件大小自动滚动的功能,以及如何进行日志内容的格式化输出。 首先,log4j是一款广泛使用的日志记录框架,它提供了灵活的日志配置和...
本话题将深入探讨如何使用Log4j中的DailyRollingFileAppender配置来自动删除前N天的日志,以便保持日志文件的大小和数量在可控范围内。 首先,DailyRollingFileAppender是Log4j中的一个Appender实现,它按照日期...
本文将深入探讨如何利用Log4j生成动态的日志文件名以及动态创建文件夹,帮助开发者更好地管理和分析应用程序的运行状态。 Log4j是一款功能强大的开源日志组件,它允许程序员灵活地控制日志信息的输出级别,如DEBUG...
Log4j 2.11.0引入了异步日志记录,通过使用LMAX Disruptor库实现高效的并发处理,显著提高了日志系统的性能。 9. **性能与扩展性** 2.11.0版本对性能进行了优化,同时提供了良好的扩展性,允许开发者自定义布局...
配置完成后,当应用程序中的Log4j被调用时,生成的日志将会自动发送到指定的Kafka主题。这种方式非常适合大规模分布式系统,因为它能够确保日志的实时性和可靠性。 总结一下,Kafka Java Log4j的整合使日志处理变得...
- Commons-Logging:提供了一个统一的日志接口,可以根据环境自动选择合适的日志实现(如Log4j、JDK内置日志等)。在程序中使用`Log`和`LogFactory`,无需直接引用Log4j的类。 在实际应用中,根据项目需求,可以...
当运行这个测试类,它将按照`log4j2.xml`配置生成日志文件,每24小时创建一个新的日志文件,便于管理和查询历史日志。 总结来说,`Log4j2`和`SLF4J`的组合使用,不仅简化了日志记录的代码,还提供了强大的日志管理...
描述中提到,“在log4cpp下载的包基础上添加按日期生成日志类,仅供学习和交流”,意味着这个项目是对原始Log4cpp库的一个增强版本,增加了新的特性,即日志文件按日期自动分割。这样的设计有利于管理和检索大量的...
Log4j是一款广泛使用的日志记录框架,尤其在Java应用程序中。它允许开发者灵活地控制日志信息的输出,提供了一种分级的日志记录机制,便于调试、性能分析和问题排查。这个“log4j简单范例 日志文件是相对路径的”...
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd'.log' # 每天生成一个新的日志文件 # 设置日志格式 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d...
**标题与描述解析** 标题提及的是"log4j-API-最新稳定版本log4j-1.2.17",这表明我们关注的是日志框架...对于使用Log4j的开发者来说,理解和掌握API的各个方面至关重要,以实现有效的日志管理并优化应用程序的监控。
Log4j是Apache组织提供的一款广泛使用的日志框架,它提供了灵活且高效的日志处理能力。本示例将详细介绍如何在Java项目中使用Log4j进行日志打印。 首先,Log4j的核心组件包括配置文件(通常为`log4j.properties`或`...
"Log4j记录压缩日记" 指的是使用Log4j日志框架来记录并压缩日志文件。Log4j是Apache的一个开源项目,它为应用程序提供了灵活的日志记录功能,包括输出格式、日志级别管理以及日志文件的滚动策略等。在某些场景下,...
除了默认的`FileAppender`,Log4j还提供了多种Appender,如`ConsoleAppender`(输出到控制台)、`SMTPAppender`(发送电子邮件)、`RollingFileAppender`(文件大小达到一定限制后自动滚动)等。根据实际需求,你...
然后,在Java代码中,我们可以创建并使用Logger对象,Log4j会自动将日志信息写入数据库。例如: ```java import org.apache.log4j.Logger; public class LogDemo { private static final Logger logger = Logger....
要使用Log4j生成XML日志,首先你需要在项目中添加Log4j的依赖。通常,这涉及到下载log4j的JAR包,并将其添加到项目的类路径中。如果你使用的是Maven或Gradle等构建工具,可以通过配置依赖管理来自动引入log4j。 三...
1. **Logger**:这是Log4j的基本元素,负责生成日志事件。开发者可以通过Logger实例来记录日志,每个类通常都有一个与之相关的Logger。 2. **Level**:定义了日志的级别,包括DEBUG、INFO、WARN、ERROR和FATAL,...