前言

在Tomcat 与weblogic 中的 日志(log4j) 配置系列一

在系列一 中, 有一个问题一直没有解决,就是部署到weblogic 中应用程序如何通过log4j写日志到文件中?

这里仅仅使用log4j, 而不使用 commons-logging, 关于log4j 和commons-logging的区别和关联,请参考

一个web 项目实例

这个实例很简单,就是定义一个servlet, 用来写日志

1. 使用eclipse 创建一个动态web 项目, 导入log4j.jar 包

2. 创建一个servlet 类

  1. /**
  2. * @author oscar999
  3. * @date 2013-7-31
  4. * @version V1.0
  5. */
  6. package com.oscar999;
  7.  
  8. import java.io.IOException;
  9. import java.io.PrintWriter;
  10.  
  11. import javax.servlet.http.HttpServlet;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14.  
  15. import org.apache.log4j.Logger;
  16. import org.apache.log4j.PropertyConfigurator;
  17.  
  18. public class LogServlet extends HttpServlet {
  19.  
  20. private static final long serialVersionUID = 1L;
  21.  
  22. public void service(HttpServletRequest req, HttpServletResponse res) {
  23.  
  24. testLog4j();
  25. try {
  26. PrintWriter out = res.getWriter();
  27. out.println("<Hr><h1>Please check the Logs Are generated in .log or Not .....");
  28. } catch (IOException e) {
  29. // TODO Auto-generated catch block
  30. e.printStackTrace();
  31. }
  32. }
  33.  
  34. public void testLog4j() {
  35. Logger log = Logger.getLogger(LogServlet.class);
  36. PropertyConfigurator.configure("log4j.properties");
  37. log.debug("Debug info.");
  38. log.info("Info info");
  39. log.warn("Warn info");
  40. log.error("Error info");
  41. log.fatal("Fatal info");
  42. }
  43.  
  44. }

3. 在web.xml 中添加servlet 配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app
  3. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  4. "http://java.sun.com/dtd/web-app_2_3.dtd">
  5. <web-app>
  6. <display-name>logTestApp</display-name>
  7.  
  8. <servlet>
  9. <servlet-name>LogServlet</servlet-name>
  10. <servlet-class>com.oscar999.LogServlet</servlet-class>
  11. <load-on-startup>2</load-on-startup>
  12. </servlet>
  13. <servlet-mapping>
  14. <servlet-name>LogServlet</servlet-name>
  15. <url-pattern>/logServlet</url-pattern>
  16. </servlet-mapping>
  17.  
  18. <welcome-file-list>
  19. <welcome-file>index.html</welcome-file>
  20. <welcome-file>index.htm</welcome-file>
  21. <welcome-file>index.jsp</welcome-file>
  22. <welcome-file>default.html</welcome-file>
  23. <welcome-file>default.htm</welcome-file>
  24. <welcome-file>default.jsp</welcome-file>
  25. </welcome-file-list>
  26. </web-app>

4. 编写一个 log4j.properties 文件

  1. log4j.rootLogger=debug,stdout,logfile
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
  5.  
  6. log4j.appender.logfile=org.apache.log4j.RollingFileAppender
  7. log4j.appender.logfile.File=logfile.log
  8. log4j.appender.logfile.MaxFileSize=512KB
  9. log4j.appender.logfile.MaxBackupIndex=3
  10. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
  11. log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

5.  把log4j.properties文件放入 user_projects\domains\base_domain 下。(base_domain是这里使用的domain name, 如果domain name 不一样,应该知道要怎么做了)

因为上面servlet 中,读取log4j  的配置是 PropertyConfigurator.configure("log4j.properties");

这样就直接到  base_domain的路径下去找log4j.properties。

在log4j.properties配置产生的日志文件 logfile.log默认也会放到  base_domain目录下,

也可以修改, 建议是可以放到 “base_domain\servers\AdminServer\logs” 这个目录下。

6. 接下来通过 http://localhost:8080/appname/servletname

访问就可以了

java 日志技术汇总(log4j , Commons-logging,.....)的更多相关文章

  1. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" ...

  2. Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

    1.错误叙述性说明 2014-7-12 0:38:57 org.apache.catalina.core.ApplicationContext log 信息: No Spring WebApplica ...

  3. java.lang.ClassNotFoundException: org.apache.commons.logging.Log

    严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalin ...

  4. java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方案

    导入commons-logging-1.2.jar辅助类包即可. 报错提示: Exception in thread "main" java.lang.NoClassDefFoun ...

  5. IntellJ IDEA javax.servlet.ServletException 找不到javax.servlet.ServletException的类 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    误状态:错误显示 解决: (1)说明缺少包---->添加如下包配置 <dependency> <groupId>javax.servlet.jsp</groupId ...

  6. 【java web】Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

    javaweb报错如下:22:49:22.155 [http-nio-8081-exec-9] ERROR org.apache.struts2.dispatcher.DefaultDispatche ...

  7. java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.commons.dbcp2.Ba ...

  8. Java日志框架 (commons-logging,log4j,slf4j,logback)

    转自:http://blog.csdn.net/kobejayandy/article/details/17335407 如果对于commons-loging.log4j.slf4j.LogBack等 ...

  9. Java学习笔记(十九)——Java 日志记录 AND log4j

    [前面的话] 学习的进度应该稍微在快一点. Java日志到了必须学习怎么使用的时候了,因为在项目中要进行使用.基础性文章,选择性阅读. [结构] java日志对调试,记录运行,问题定位都起到了很重要的 ...

随机推荐

  1. Memcached(五)Memcached的并发实例

    package com.sinosuperman.memcached; import java.io.IOException; import java.net.InetSocketAddress; i ...

  2. Android开发(一):环境搭建

    引言 本系列将记录我在步入Android开发过程中的一些流水账及经验,如有疏漏,还望不吝赐教. 目录 1.JDK安装及配置 2.Eclipse.Android SDK ADT安装及配置 正文 1.JD ...

  3. C#.net调用axis2webService

    用C#.net调用axis2webService的时候需要引用web服务, 比如访问地址为:http://111.21.32.213:8080/axis2/services/AdService/get ...

  4. 数据结构---顺序表(C++)

    顺序表 是用一段地址连续的存储单元依次存储线性表的数据元素. 通常用一维数组来实现 基本操作: 初始化 销毁 求长 按位查找 按值查找 插入元素 删除位置i的元素 判空操作 遍历操作 示例代码: // ...

  5. codeforces 390E Inna and Large Sweet Matrix

    本题的主要算法就是区间更新和区间求和: 可以用线段树和树状数组来做: 感觉线段树写的太麻烦了,看到官方题解上说可以用树状数组做,觉得很神奇,以前用过的树状数组都是单点维护,区间求和的: 其实树状数组还 ...

  6. [Quick-x]制作新手引导高亮区域方法之一:混合模式

    demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea 1.混合模式 (1)首先创建一个全屏的CCRenderTexture实例 这里使 ...

  7. 根据价格范围筛选汽车(路由以及JS与Jquery)

    通过输入价格范围,来筛选汽车,主要方法是通过点击“查询”按钮,触发chaxun()方法,利用Jquery和JS获取输入的值,然后为相应的div加载相应的动作,通过更改路由的路径,以此来实现筛选车辆,然 ...

  8. 关于Sublime Text2 GBK编码的问题

    很多文章都说需要"ConvertToUTF8"和"GBK Encoding Support"连个插件. 其实GBK Encoding Support完全不需要, ...

  9. Javascript 多线程?

    最近在遇到一个问题:HTML页面中的页面无法刷新,只能在底层全部处理完成后才能进行页面刷新.在里面已经采用SetTimeout进行了处理,但是明显没有达到预期的效果. 主要的原因是对SetTimeou ...

  10. epub格式电子书剖析之三:NCX文件构成

    ncx文件是epub电子书的又一个核心文件,用于制作电子书的目录,其文件的命名通常为toc.ncx. ncx文件是一个XML文件,该标准由DAISY Consortium发布(参见http://www ...