环境配置步骤:
1、下载log4j.jar
下载地址:https://logging.apache.org/log4j/
2、添加到BIN目录中
3、在src 目录下添加log4j.properties
log4j.rootLogger=info,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] %d %30c %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='-'yyyy-MM-dd
log4j.appender.file.File=${log4jdir}/logs//log.log //应用路径下/logs/生成日志
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %d %30c %m%n
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] %d %30c %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='-'yyyy-MM-dd
log4j.appender.file.File=${log4jdir}/logs//log.log //应用路径下/logs/生成日志
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %d %30c %m%n
定义${log4jdir}路径占位符,servlet容器启动时动态设置。
或写入服务中生产目录的全路径,如:E:\SourceCode\YFOnlineServer\WebContent\logs
4、定义log4jlistener类实现ServletContextListener
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class log4jlistener implements ServletContextListener {
public static final String log4jdirkey = "log4jdir";
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.getProperties().remove(log4jdirkey);
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
System.setProperty(log4jdirkey, log4jdir);
}
}
import javax.servlet.ServletContextListener;
public class log4jlistener implements ServletContextListener {
public static final String log4jdirkey = "log4jdir";
public void contextDestroyed(ServletContextEvent servletcontextevent) {
System.getProperties().remove(log4jdirkey);
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
System.setProperty(log4jdirkey, log4jdir);
}
}
System.setProperty(log4jdirkey, log4jdir);设置3中的占位符
5、web.xml配置
<listener>
<listener-class>com.df.contextListener.log4jlistener</listener-class>
</listener>
<listener-class>com.df.contextListener.log4jlistener</listener-class>
</listener>
6、代码中使用
servlet中使用:
Logger logger=Logger.getLogger(log4jserlet.class.getName());
logger.info("HttpServlet");
logger.info("HttpServlet");
普通类中使用:
static Logger logger = Logger.getLogger(loggingtest.class);
logger.info("class aaa");