1.首先需要jar包:log4j-1.2.8.jar
2.编写log4j的配置文件:log4j.properties
log4j.logger.Log4jTest=Info,testlog
log4j.appender.testlog=org.apache.log4j.FileAppender
log4j.appender.testlog.File=./xml/testlog.log
log4j.appender.testlog.Encoding=GBK
log4j.appender.testlog.layout=org.apache.log4j.PatternLayout
log4j.appender.testlog.layout.ConversionPattern=%d{yyyy MM dd HH:mm:ss,SSS} %5p %c{1}:%L : %m%n
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
org.apache.log4j.SocketAppender (Socket)
org.apache.log4j.NtEventLogAppender (NT的Event Log)
org.apache.log4j.JMSAppender (电子邮件)
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
表示了日志信息的格式,参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格 式,比如:%d{yyy MMM dd HH:
mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
3.java代码中使用:
package log4j; import java.io.File; import java.io.IOException; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log4jTest { // private static Logger logtest = // Logger.getLogger(Log4jTest.class.getName());对应配置文件中的类完整路径 private static Logger logtest = Logger.getLogger("Log4jTest");//对应配置文件中的名称 public void logContent(String str) { String path = ""; try { path = new File("./xml/log4j.properties").getCanonicalPath(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } PropertyConfigurator.configure(path); logtest.info(str); } public static void main(String[] args) { new Log4jTest().logContent("The fist time use log4j"); } }