使用包log4j-1.2.16,一开始我使用老版本的的包,下面的配置一直出错。web.xml配置为
<servlet>
<servlet-name>launcher</servlet-name>
<servlet-class>dbtest.serverlet.LauncherServlet</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
log4j.properties配置为,注意一定要确保在WeRoot的WEB-INF文件下
log4j.rootLogger=debug, A1 , R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
Servlet配置为
public class LauncherServlet extends HttpServlet{
public void init() throws ServletException{
super.init();
InputStream is = null;
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");
String filePath = prefix+file;
Properties props = new Properties();
System.out.println(filePath);
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){
e.printStackTrace();
}
}
这样配置即可,以后使用
Logger logger = Logger.getLogger(this.class);
logger.info("message");;