新建一个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>
// 如果直接 className.class 日志输出到全局的 即rootLogger 指定的文件中 // Logger logger = Logger.getLogger(this.getClass().getName()); // 如果指定logger名字,则是把日志,输出到D (debug) 指定的日志文件中去 Logger logger = Logger.getLogger("D");
logger.info("servlet4: GET方式: " + url);
原文:http://my.oschina.net/lenglingx/blog/522279