三、在log4j.properties文件里把"log4j.rootCategory=DEBUG, stdout"改写成"log4j.rootCategory=DEBUG, stdout, R",再加上下面三句话:
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss} %-5p %c - %m%n
这样,你的log信息不光显示在屏幕上,而且将被保存在一个叫"log.txt"的文件里,文件最大为100KB。如果文件大小超过100KB,文件会被备份成"log.txt.1",新的"log.txt"继续记录log信息。
你可以改变log4j.properties,而不需重新编译就可以控制log信息是否显示、log信息的输出端类型、输出方式、输出格式,等等。你上面的四步工作带来这么多好处,我还要System.out.println来显示log信息吗? 不需要了。
以下是我LogTest项目的目录结构:
build.xml文件的内容:
<project name="Log4j Test" default="build" basedir=".">
<property name="app.home" value="${basedir}" />
<property name="app.src" value="${app.home}/src" />
<property name="app.bin" value="${app.home}/bin" />
<property name="app.lib" value="${app.home}/lib" />
<path id="classpath">
<fileset dir="${app.lib}">
<include name="**/*.jar" />
</fileset>
<path location="${app.home}"/>
<path location="${app.bin}"/>
</path>
<target name="init">
<mkdir dir="${app.bin}"/>
</target>
<target name="build" depends="init" description="compile the source " >
<javac srcdir="${app.src}" destdir="${app.bin}">
<classpath refid="classpath"/>
</javac>
</target>
<target name="run" description="run">
<java classname="LogTest" dir="${app.bin}" fork="true">
<classpath refid="classpath"/>
</java>
</target>
<target name="clean" description="clean up" >
<delete dir="${app.bin}" />
</target>
</project>
总共四个文件,一个用来测试的LogTest类,一个build.xml ANT文件,一个log4j.properties配制文件,一个log4j-1.2.8.jar类库。
log4j的功能有很多,doodoofish这里就不详细介绍了。
进入讨论组讨论。相关专题
- Java远程通讯可选技术及原理 (145次浏览)
- Java基础知识:初学者必须理解的六大问题 (76次浏览)
- 九个非常值得一看的MySpace程序 (72次浏览)
- Java初学者必须理解的六个大问题 (70次浏览)
- 微软企业级平台呼之欲出 英雄由“此”诞生 (66次浏览)
- Java基础知识:谈谈简单Hibernate入门 (58次浏览)
- struts验证框架开发详解 (48次浏览)
- Java入门-浅析Java学习从入门到精通 (47次浏览)
- 关于提高自己水平的十大技术 (47次浏览)
- Eclipse开发经典教程:SWT布局 (46次浏览)



