Tomcat 6之前,在web应用中使用log4j还算容易,只要将log4j的jar包和相应的配置文件扔到项目的class path就齐活了。但是从6开始,一切变得如此复杂…… 根据Tomcat 6 的官方文档,默认tomcat用的是JDK的logging框架,并配以“精简版”的common logging框架,即不支持common logging的底层框架自动切换功能,要使用log4j也就不可能了。要使用上述功能,需要使用“完整版”的common logging,而这个完整版的jar包apache上不提供下载,需要“自己编译tomcat代码”-_-|||,具体步骤如下:

  1. 当然,你必须得有JDK、ant、SVN(如果你直接下载源代码包,可以不需要SVN)
  2. 从http://svn.apache.org/repos/asf/tomcat/tc6.0.x/ check out代码
  3. 执行ant download
  4. 执行ant(这里提一句,源代码的编码为utf8,直接编译的话会扔一堆warning,只要改一下ant脚本里的javac task就好了,加上encoding="utf8")
  5. 执行ant -f extras.xml
  6. 将output/extras/
    tomcat-juli.jar覆盖到tomcat的bin目录下
  7. 将output/extras/tomcat-juli-adapters.jar拷到tomcat的lib目录下
  8. 在lib目录下写tomcat的全局log4j配置
  9. 在你的web项目中放入log4j.jar和log4j.properties(.xml)

附: tomcat-juli.jar tomcat-juli-adapters.jar 使用utf8编译的build.xml