java日志我这里分为两种:web应用和桌面应用。而我这里重点介绍web应用中log4j的使用。
一、配置log4j.properties文件,该文件存放于classpath根目录下。
代码如下:
log4j.rootLogger=INFO, stdout, logfile
# CONSOLE appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p %m%n
# Log File appender
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.logfile.file=${webapp.root}/WEB-INF/tiens.log
log4j.appender.logfile.append=true
log4j.logger.com.tiens=INFO
其中log4j.rootLogger=INFO, stdout, logfile 是要配置日志级别以及日志输出对应名称
二、注册log4j的配置属性。
新建一servlet,在servlet中注册日志的配置属性,代码如下:
public void init(ServletConfig config) throws ServletException {
super.init();
String prefix = config.getServletContext().getRealPath("/");
String file = config.getInitParameter("log4j");
String filePath = prefix + file;
Properties props = new Properties();
try {
FileInputStream istream = new FileInputStream(filePath);
props.load(istream);
istream.close();
String logFile = prefix
+ props.getProperty("log4j.appender.logfile.File");// 设置路径,对应配置文件中的名称
props.setProperty("log4j.appender.logfile.File", logFile);
// 装入log4j配置信息
PropertyConfigurator.configure(props);
} catch (IOException e) {
System.out.println("Could not read configuration file [" + filePath
+ "].");
System.out.println("Ignoring configuration file [" + filePath
+ "].");
return;
}
}
三、在web.xml中设置启动
代码如下
<servlet>
<description></description>
<display-name>InitLog4J</display-name>
<servlet-name>InitLog4J</servlet-name>
<servlet-class>com.tiens.web.InitLog4J</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>InitLog4J</servlet-name>
<url-pattern>/InitLog4J</url-pattern>
</servlet-mapping>
到此,一个基本的常用的web使用log4j的例子已经完成。
Log4j的一些常用高级配置:
Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)