当前位置:编程学习 > JAVA >>

关于log4j的问题

tomcat6 我把log4j.properties文件放在应用的WEB-INF\classes\下面,不能生成log文件,报
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
但是把log4j.properties文件放在tomcat\lib\下就正常,哪位知道是什么原因呢?  --------------------编程问答-------------------- 你log4j.properties的加载路径应该有问题吧 --------------------编程问答-------------------- 加载路径需要在哪里设置吗?如何设置,小弟对log4j不是很清楚 --------------------编程问答-------------------- 1、是路径写的不对?
http://zhanghua.1199.blog.163.com/blog/static/464498072012111961053559/

2、还是你的web.xml中配置的问题?看下web.xml去哪个路径找log4j.properties了? --------------------编程问答-------------------- 上面说的很对
PS:tomcat 日志根目录好像是bin目录。 --------------------编程问答-------------------- 我现在加了一个servlet,修改了web.xml,启动的时候已经创建了日志文件,不过是空的,信息写不进去,报:
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

附上我的servlet和web.xml以及log4j.properties
servlet
package servlet;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;

public class Log4jInitServlet extends HttpServlet {

public void init(ServletConfig config) throws ServletException {
String prefix = config.getServletContext().getRealPath("/");
String log4jLocation = config.getInitParameter("log4jLocation") == null ? "" : config.getInitParameter("log4jLocation");
System.setProperty("webappHome", prefix);
if (!log4jLocation.equals("")) {
  PropertyConfigurator.configure(prefix + log4jLocation);
}
}
}


web.xml
<servlet>
    <servlet-name>log4jInit</servlet-name>
<servlet-class>servlet.Log4jInitServlet</servlet-class>
<init-param>
  <param-name>log4jLocation</param-name>
  <param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
  </servlet>


log4j.properties

log4j.rootLogger=INFO,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d %-5p [%c] %m%n
log4j.appender.R1=org.apache.log4j.RollingFileAppender
log4j.appender.R1.File=${webappHome}/logs/website.log
log4j.appender.R1.layout=org.apache.log4j.PatternLayout 
log4j.appender.R1.layout.ConversionPattern=%d %-5p [%c] %m%n
log4j.appender.R1.Append=true
log4j.appender.R1.MaxFileSize=100MB 
log4j.appender.R1.MaxBackupIndex=50  --------------------编程问答-------------------- 我也不懂,求解 --------------------编程问答--------------------

这个原因就是配置文件出错了,也就是WEB-INF\classes文件夹下的commons-logger.properties配置文件有问题。
这是默认的:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog
--------------------编程问答-------------------- 我没有commons-logger.properties这个文件,这个文件必须要吗
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,