log4j的简单使用

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

 

  • log4j.logger.A(A可以为类的完整路径,也可以是一个名称)

 

  • log4j.appender.testlog的参数值有如下:

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 (电子邮件)

 

  • log4j.appender.testlog.File=./xml/testlog.log表示输出目标文件

 

  • log4j.appender.out1.layout=org.apache.log4j.PatternLayout表示了日志信息的布局,也可以设置成其他布局形式:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

 

  • log4j.appender.out1.layout.ConversionPattern=%d{ABSOLUTE} [%t] %-5p %-30.30c{2} %x - %m %n

表示了日志信息的格式,参数如下:

%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"); } }

你可能感兴趣的:(windows,log4j,String,socket,Path,平台)