web.xml
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.***..Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>classpath:log4j.properties</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
log4j.properties
#log4j.rootLogger=DEBUG,stdout,file
#log4j.rootLogger=debug,stdout,file
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%l] %m%n
log4j.appender.DATACLZZLOAD=com.bossft.util.JDBCAppenderHelper
log4j.appender.DATACLZZLOAD.jdbcValue="/sql.properties"
log4j.appender.DATACLZZLOAD.layout=org.apache.log4j.PatternLayout
log4j.appender.DATACLZZLOAD.layout.ConversionPattern=%d %c %p %m%n
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=%d %c %p %m%n
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d:/file/mylog.txt
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%l] %m%n
#log4j.logger.org.springframework.transaction.interceptor=DEBUG
Log4jInit
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class Log4jInit extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -2996864448514512400L;
static Logger logger = Logger.getLogger(Log4jInit.class);
public Log4jInit() {
}
public void init(ServletConfig config) throws ServletException {
String prefix = config.getServletContext().getRealPath("/");
String file = config.getInitParameter("log4j");
String filePath = prefix + file;
toPrint(filePath);
Properties props = new Properties();
try {
FileInputStream istream = new FileInputStream(filePath);
props.load(istream);
istream.close();
String logFile = props.getProperty("log4j.appender.file.File");//设置路径
String logErrorFile = props.getProperty("log4j.appender.errorfile.File");//设置路径
props.setProperty("log4j.appender.file.File", logFile);
props.setProperty("log4j.appender.errorfile.File", logErrorFile);
PropertyConfigurator.configure(props);//装入log4j配置信息
} catch (IOException e) {
toPrint("Could not read configuration file [" + filePath + "].");
toPrint("Ignoring configuration file [" + filePath + "].");
return;
}
}
public static void toPrint(String content) {
System.out.println(content);
}
}