问个关于log4j的问题问个关于log4j的问题log4j.propertieslog4j.rootLogger = error,A1,A2log4j.appender.A1 = org.apache.log4j.ConsoleAppender
log4j.appender.A1.Target = System.out
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern = \n\n[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
#log4j.appender.A2 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File = /WEB-INF/logs/error.log
#log4j.appender.A2.File = log4j.log
#log4j.appender.A2.DatePattern='.'yyyy-MM-dd log4j.appender.A2.MaxFileSize = 1024KB
log4j.appender.A2.MaxBackupIndex = 5
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern = \n\n[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n路径:WebRoot\WEB-INF\
web.xml配置<servlet>
<servlet-name>Environment</servlet-name>
<servlet-class>app.servlet.EnvServlet</servlet-class> <init-param>
<param-name>log4jInitFile</param-name>
<param-value>/WEB-INF/log4j.properties</param-value><!--log4j日志配置文件的存放位置-->
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Environment</servlet-name>
<url-pattern>/servlet/EnvServlet.do</url-pattern>
</servlet-mapping>
EnvServlet读取配置信息package app.servlet;import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;import java.io.IOException;
import java.util.Enumeration;
import app.core.Environment;
import app.core.HibernateSessions;
import org.apache.commons.logging.*;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.BasicConfigurator;
import org.springframework.util.Log4jConfigurer;
import org.springframework.web.util.Log4jWebConfigurer;import common.Logger;public class EnvServlet extends HttpServlet { private static Logger logger = Logger.getLogger(EnvServlet.class); */
// private static Log log = LogFactory.getLog(EnvServlet.class);
/**
*
* @param config
* ServletConfig
* @throws ServletException
*/
public void init(ServletConfig config) throws ServletException {
try {// Log4jWebConfigurer.initLogging(config.getServletContext());String file = config.getInitParameter("log4jInitFile");
if (file != null) { PropertyConfigurator.configure(file); }
} catch (Exception e) {
logger.err(e);
System.err.println("the log4j configuretor file is error");
}
// BasicConfigurator.configure();
} public void destroy() {
Environment.clearAttrbutes(); }
}我的本意是在WebRoot\WEB-INF\logs\新建一个error.log文件,把出错信息写到里面,但怎么配置就是路径出错!启动不成功,各位帮我看看是什么错误!
log4j.appender.A1.Target = System.out
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern = \n\n[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n
log4j.appender.A2 = org.apache.log4j.RollingFileAppender
#log4j.appender.A2 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File = /WEB-INF/logs/error.log
#log4j.appender.A2.File = log4j.log
#log4j.appender.A2.DatePattern='.'yyyy-MM-dd log4j.appender.A2.MaxFileSize = 1024KB
log4j.appender.A2.MaxBackupIndex = 5
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern = \n\n[%-5p] %d{yyyy-MM-dd HH:mm:ss} method:%l%n%m%n路径:WebRoot\WEB-INF\
web.xml配置<servlet>
<servlet-name>Environment</servlet-name>
<servlet-class>app.servlet.EnvServlet</servlet-class> <init-param>
<param-name>log4jInitFile</param-name>
<param-value>/WEB-INF/log4j.properties</param-value><!--log4j日志配置文件的存放位置-->
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Environment</servlet-name>
<url-pattern>/servlet/EnvServlet.do</url-pattern>
</servlet-mapping>
EnvServlet读取配置信息package app.servlet;import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;import java.io.IOException;
import java.util.Enumeration;
import app.core.Environment;
import app.core.HibernateSessions;
import org.apache.commons.logging.*;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.BasicConfigurator;
import org.springframework.util.Log4jConfigurer;
import org.springframework.web.util.Log4jWebConfigurer;import common.Logger;public class EnvServlet extends HttpServlet { private static Logger logger = Logger.getLogger(EnvServlet.class); */
// private static Log log = LogFactory.getLog(EnvServlet.class);
/**
*
* @param config
* ServletConfig
* @throws ServletException
*/
public void init(ServletConfig config) throws ServletException {
try {// Log4jWebConfigurer.initLogging(config.getServletContext());String file = config.getInitParameter("log4jInitFile");
if (file != null) { PropertyConfigurator.configure(file); }
} catch (Exception e) {
logger.err(e);
System.err.println("the log4j configuretor file is error");
}
// BasicConfigurator.configure();
} public void destroy() {
Environment.clearAttrbutes(); }
}我的本意是在WebRoot\WEB-INF\logs\新建一个error.log文件,把出错信息写到里面,但怎么配置就是路径出错!启动不成功,各位帮我看看是什么错误!
你log4j都还没初始化你就在调用了阿?静态变量会在你初始化之前就分配的.
File a = new File(".");
System.out.println("当前目录:"+a.getAbsolutePath());
打印出实际路径.一般我都是用D:/logs之类的绝对路径来指定log输出的.
http://blog.k99k.com/post/log4j_handbook.html