新建一个JAVA WEB 项目,就是一个动态网站。
例名字为sms
(一)去http://logging.apache.org/log4j/1.2/下载log4j版本。
把log4j-1.2.17.jar放到WEB-INF/lib目录下
(二)java源码目录下的src目录下新建一个名名"log4j.properties"
### \u8BBE\u7F6E###
log4j.rootLogger = debug,stdout,D,L,E
### \u8F93\u51FA Console(System.out)###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### \u8F93\u51FA DEBUG ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/sms/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### \u8F93\u51FA INFO ###
log4j.appender.l = org.apache.log4j.DailyRollingFileAppender
log4j.appender.l.File = E://logs/sms/info.log
log4j.appender.l.Append = true
log4j.appender.l.Threshold = INFO
log4j.appender.l.layout = org.apache.log4j.PatternLayout
log4j.appender.l.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### \u8F93\u51FA ERROR ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/sms/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
(三)在项目下建一个初始化log4j的servlet。名字为Log4jInit的
在Log4jInit的servlet中添加初始化配置
public void init() throws ServletException {
String file = this.getInitParameter("log4j");// 从web.xml配置读取,名字一定要和web.xml配置一致
if (file != null) {
PropertyConfigurator.configure(file);
}
}
(四)在 web.xml中添加
<servlet>
<servlet-name>Log4jInit</servlet-name>
<servlet-class>com.xxx.dxw.sms.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</init-param>
</servlet>
(五)在WEB项目的各个servlet和class中。
在各个servelt和class中新引入以下Log4j的Logger类。
// 如果直接 className.class 日志输出到全局的 即rootLogger 指定的文件中
// Logger logger = Logger.getLogger(this.getClass().getName());
// 如果指定logger名字,则是把日志,输出到D (debug) 指定的日志文件中去
Logger logger = Logger.getLogger("D");
logger.info("servlet4: GET方式: " + url);