`
wrong1111
  • 浏览: 249980 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

在JBOSS4.0下,配用自己的LOG4J.PROPETIES

    博客分类:
  • java
阅读更多
1. 把 D:\jboss-4.0.5.GA\server\default\conf 里面的 log4j.xml 改名为 jboss-log4j.xml

2. 编辑 D:\jboss-4.0.5.GA\server\default\conf 里面的 jboss-service.xml 找到

   <!-- ==================================================================== -->
   <!-- Log4j Initialization                                                 -->
   <!-- ==================================================================== -->

   <mbean code="org.jboss.logging.Log4jService"
      name="jboss.system:type=Log4jService,service=Logging"
      xmbean-dd="resource:xmdesc/Log4jService-xmbean.xml">
      <attribute name="ConfigurationURL">resource:log4j.xml</attribute>
      <!-- Set the org.apache.log4j.helpers.LogLog.setQuiteMode. As of log4j1.2.8
      this needs to be set to avoid a possible deadlock on exception at the
      appender level. See bug#696819.
      -->
      <attribute name="Log4jQuietMode">true</attribute>
      <!-- How frequently in seconds the ConfigurationURL is checked for changes -->
      <attribute name="RefreshPeriod">60</attribute>
   </mbean>
把 resource:log4j.xml 改为 resource:jboss-log4j.xml

3. 在自己的应用程序的 WEB-INF 目录中添加一个 jboss-web.xml 内容如下

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
  <class-loading java2ClassLoadingCompliance="false">
  <loader-repository>
      ConfigTest:loader=ConfigTest.war
      <loader-repository-config>java2ParentDelegation=false
      </loader-repository-config>
   </loader-repository>
</class-loading>
</jboss-web>

4. 把 log4j.jar 加到 build-path 中

5. 在自己的应用程序的 WEB-INF 目录中添加一个 log4j.properties 内容如下:

#Global variable definition
LOG_LEVEL=DEBUG
LOG_FILE1=D:/jboss-4.0.5.GA/server/default/log/configtest1.log
LOG_FILE2=D:/jboss-4.0.5.GA/server/default/log/configtest2.log

# com.microsoft Logger
log4j.logger.org.stephencat.test=${LOG_LEVEL}, logfile1
log4j.additivity.org.stephencat.test=false

# com.microsoft Logger
log4j.logger.org.stephencat.cat=${LOG_LEVEL}, logfile2
log4j.additivity.org.stephencat.cat=false

# Console Appender Definition
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %c(%t) %x:%m%n
#log4j.appender.stdout.layout.ConversionPattern=%-5p:[%d{MM/dd HH:mm:ss,SSS}] %c(%t) %x:%m%n

# File Appender Definition
log4j.appender.logfile1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile1.File=${LOG_FILE1}
log4j.appender.logfile1.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile1.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile1.layout.ConversionPattern=%-5p:[%d{ISO8601}] %c(%t) %x:%m%n

# File Appender Definition
log4j.appender.logfile2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile2.File=${LOG_FILE2}
log4j.appender.logfile2.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile2.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile2.layout.ConversionPattern=%-5p:[%d{ISO8601}] %c(%t) %x:%m%n
这里分别定义了两个命名控件:
logfile1 对应命名空间(Java 代码中的 package)org.stephencat.test.*
logfile2 对应命名空间 org.stephencat.cat.*

6. 建立一个用于初始化的 InitServlet ,配置如下方法:

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occure
     */
    public void init(ServletConfig config) throws ServletException {
        // Put your code here
        String isRelativePosition = config.getInitParameter("relativePosition");
        String logConfiguration = config.getInitParameter("logConfiguration");
        String root = "";
        if(isRelativePosition.equals("true")){
            root = config.getServletContext().getRealPath("/");
        }
        PropertyConfigurator.configure(root + logConfiguration);
    }
在 web.xml 配置这个 Servlet 的初始化参数(声明 log4j.properties 的位置)和启动优先级:

  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>InitServlet</servlet-name>
    <servlet-class>org.stephencat.test.InitServlet</servlet-class>
    <init-param>
        <param-name>relativePosition</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>logConfiguration</param-name>
        <param-value>WEB-INF/log4j.properties</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
7. 在 org.stephencat.test.TestServlet (映射为 /test)中加入:

    static Logger log = Logger.getLogger(TestServlet.class.getName());
8. 在 org.stephencat.cat.Test2Servlet(映射为 /test2)中加入:

    static Logger log = Logger.getLogger(Test2Servlet.class.getName());
9. 重新启动 JBoss ,会出现如下错误消息:

11:53:21,549 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.appender.FileAppend
er" object is not assignable to a "org.apache.log4j.Appender" variable.
11:53:21,549 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.Appender" wa
s loaded by
11:53:21,549 ERROR [STDERR] log4j:ERROR [WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
java.net.FactoryURLClassLoader@dcc4e2
] whereas object of type
11:53:21,549 ERROR [STDERR] log4j:ERROR "org.jboss.logging.appender.FileAppender
" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@a97b0b].
11:53:21,549 ERROR [STDERR] log4j:ERROR Could not instantiate appender named "FI
LE".
这是因为自己的 log4j.jar 与 JBoss 的 log4jService 有点冲突,但这段错误消息实际上可以忽略

10. 访问以下网址:

http://localhost/..../test

http://localhost/..../test2

将分别在以下日志文件中输出日志内容:

D:/jboss-4.0.5.GA/server/default/log/configtest1.log
D:/jboss-4.0.5.GA/server/default/log/configtest2.log

文件名和物理路径可在 log4j.properties 中修改。

引用自:http://www.cnblogs.com/stephencat/archive/2006/12/04/581348.html

分享到:
评论

相关推荐

    JBoss4.0中文版.pdf

    【JBoss4.0中文版.pdf】是一本详细介绍JBoss应用服务器4.0版本的中文教程,涵盖了从基础到高级的各类主题,旨在帮助读者快速掌握JBoss的使用和管理。该书的主要内容可能包括以下几个方面: 1. **JBoss简介**:JBoss...

    Jboss 4.0 the official guide 标准教材

    《JBoss 4.0 The Official Guide》是JBoss应用服务器使用的一本权威指南,针对的是4.0版本,这是JBoss的一个重要里程碑。这本书详细介绍了如何配置、管理和部署Java EE应用程序在JBoss上,是开发者、系统管理员以及...

    JBOSS4.0 Start Guide (PDF)

    3. **日志管理**: 通过`server/default/conf/log4j.xml`配置日志级别和输出位置,优化性能。 ### 六、JBoss 4.0 源码分析 1. **源码获取**: 通过Git或SVN从官方仓库获取源代码,有助于深度学习和定制。 2. **调试...

    JBoss4.0实例参考PDF格式

    8. **热部署与热更新**:JBoss 4.0支持在不中断服务的情况下更新应用,这是开发过程中非常实用的功能。 9. **日志与调试**:了解如何配置和使用JBoss的日志系统,以及如何进行服务器的故障排查和性能优化。 10. **...

    JBOSS log4j 配置

    然而,在 JBOSS 服务器中使用 Log4j 时,可能会遇到一些冲突和配置问题。本文将详细介绍如何解决 JBOSS 和 Log4j 的冲突,配置 Log4j,及 Log4j 的基本使用方法。 解决 JBOSS 和 Log4j 冲突的配置 为了解决 JBOSS ...

    jboss下通过配置log4j.doc

    jboss下通过配置log4j,log4j在jboss下的配置

    Jboss4.0开发者手册

    An Introduction to JMX Jboss Class Loading and Types 讲述了Jboss所使用的技术和配置,是学习Jboss机制的不错资料

    在Jboss4.0下对MySql数据源的设置方法

    在JBoss 4.0环境下配置MySQL数据源的步骤涉及多个环节,主要是为了确保JBoss应用服务器能够正确地连接和操作MySQL数据库。以下是对每个步骤的详细解释: **步骤一:添加MySQL JDBC驱动** 首先,你需要获取适用于...

    getting started with jboss 4.0-cn.pdf

    getting started with jboss 4.0-cn.pdfgetting started with jboss 4.0-cn.pdf

    JBoss 4.0

    是一本中文的比较齐全的JBoss教程

    MyEclipse_JBoss4.0开发EJB组件环境配置(入门调试级)

    本教程将详细介绍如何在MyEclipse中配置和调试EJB组件,以便在JBoss 4.0上运行。 ### 一、MyEclipse EJB项目创建 1. **启动MyEclipse**:打开MyEclipse,选择“File” &gt; “New” &gt; “Dynamic Web Project”,在弹...

    JBoss 4.0 Guide

    JBoss 4.0 Getting Started Guide

    jboss-websocket-api_1.1_spec-2.0.0.Final-API文档-中英对照版.zip

    赠送jar包:jboss-websocket-api_1.1_spec-2.0.0.Final.jar; 赠送原API文档:jboss-websocket-api_1.1_spec-2.0.0.Final-javadoc.jar; 赠送源代码:jboss-websocket-api_1.1_spec-2.0.0.Final-sources.jar; 赠送...

    hawt-log4j:一些log4j实用程序类

    log4j.appender.out.layout=org.jboss.hawt.log4j.SanitizingPatternLayout log4j.appender.out.layout.ConversionPattern=%p | %m%n log4j.appender.out.layout.replaceRegex=\\n log4j.appender.out.layout....

    jboss-logging-3.1.0.ga.jar.z

    首先,JBoss Logging是基于Java的日志API,它允许开发者使用统一的接口来实现多种日志框架的互换,如Log4j、Java Util Logging(JUL)和Logback。这使得开发者可以轻松地切换日志实现,无需修改大量代码,提高了代码...

    总结的一些关于log4j的文章

    jboss下通过配置log4j.xml实现web应用的日志.htm log4j.xml log4j.xml配置文件设置.doc Log4J快速入门.htm pwosboy -JavaEye技术社区.htm 将系统日志发布到多个文件.htm 请问怎么控制日志的输出啊.htm 怎样关闭...

    JBOSS6.0 Final 日志无法写入补丁

    然而,描述中的“对Log4j集成存在bug”可能意味着JBOSS 6.0的内置Log4j配置或与其交互的方式存在缺陷,导致日志无法按照预期写入指定的文件。 这个问题可能有以下几种可能的原因: 1. **配置错误**:Log4j的配置...

    jboss-4.0.2.zip

    本文将详细解析"jboss-4.0.2.zip"这一版本的JBoss应用服务器,深入探讨其核心功能、配置、部署以及在企业级应用中的重要性。 1. **JBoss概述** JBoss是Red Hat公司的一个产品,最初由JBoss社区开发。JBoss 4.0.2是...

    jboss-logging-3.3.0.Final.jar的源码

    例如,`Log4j2Logger`用于适配Log4j 2.x,`JavaLogger`用于Java内置的日志系统。这些适配器类实现了`Logger`接口,将调用转发到对应日志系统的实现,使得用户可以在不修改代码的情况下切换日志框架。 3. **日志级别...

    JBoss Log4j

    JBoss Log4j

Global site tag (gtag.js) - Google Analytics