tomcat - log4j 与 Tomcat6

标签 tomcat logging log4j web-applications tomcat6

我有一个 Log4j 的特殊问题。我们正在使用 log4j.xml 在 Weblogic 10 上进行部署。那很好用。我们想出了一种运行 Tomcat 6 的方法,这样我们就可以在此平台上进行开发并在 Weblogic 10 上进行部署。

我已经弄清楚如何使 log4j.properies 与 Tomcat 6 一起工作,并使用在 Tomcat 6 中使用 JULI 日志记录机制的附加 JArs。不幸的是,我的 log4j.xml (与 Weblogic 一起工作)无法与 Tomcat 6 一起工作。所以我不得不使用 log4j.properties

我无法弄清楚如何在 log4j.properties 中指示应用程序类层次结构。 所以我的问题是如何将以下 log4j.xml 条目转换为 log4j.properties

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="vccashib" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
    <param name="File" value="vccashib_10.log"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %t %-5p %c - %m%n"/>
    </layout>
  </appender>

  <logger name="org.hibernate">
    <level value="DEBUG"/>
    <appender-ref ref="vccashib" />
  </logger>

</log4j:configuration>

那么假设我要编写一个记录器来捕获我的 com.abc.xyz 层次结构中的类的日志。我如何在 log4j.properties 中指出这一点? (我已经处理了其他值,例如 appender 类型、DatePattern、ConversionPattern、FileName、layout 等)

请注意,我已向您发送了唯一的特定问题代码。

或者,如果您知道如何制作 log4j.xml 的答案,它是我使用 Tomcat 6 的 war 存档的一部分(JULI jar 已经到位并且可以与 log4j.properties 一起使用),请告诉我

请帮忙。

苏哈斯

最佳答案

我不是很清楚你的问题。我已经在 tomcat 6 上部署了 log4j,没有任何问题(您可以发布您的 xml 配置遇到的具体问题吗?)。我不确定你所说的“我已经弄清楚如何使 log4j.properies 与 Tomcat 6 一起工作,并使用在 Tomcat 6 中使用 JULI 日志记录机制的附加 jar”是什么意思。

  • 配置是否在正确的位置?
  • 你的一些 jar 正在加载吗 来自全局tomcat ($TOMCAT_HOME/lib) 目录?如果是这样 图书馆可能正在寻找 从全局目录配置, 而不是来自您的网络应用程序。

如果您只是在谈论如何在您的 log4j 配置中管理单独的类层次结构,它类似于:

log4j.rootCategory=INFO,stdout

#e.g. not interested in most stripes or spring warnings
log4j.logger.net.sourceforge.stripes=ERROR
log4j.logger.org.springframework=ERROR

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d %-5p [%t] %c{1} %3x - 
%m%n

#This creates the separate log "Foo" at DEBUG level. Everythign within 
#the "com.foo" package will
# get logged here
log4j.category.com.foo=DEBUG,Foo
log4j.appender.Foo=org.apache.log4j.RollingFileAppender
log4j.appender.Foo.layout=org.apache.log4j.PatternLayout
log4j.appender.Foo.layout.ConversionPattern=%-d %-5p [%t] %c{1} %3x - %m%n
log4j.appender.DetailLogFile.File=foo.log
#this is the important line - if this isn't here the stuff in
#com.foo package will show up in both logs.
log4j.additivity.com.foo=false

关于tomcat - log4j 与 Tomcat6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/786811/

相关文章:

java - 'apache-tomcat-8.0.33' 'jdk 1.8'重启Tomcat时GC分配失败

.net - Log4Net 跨多个线程记录单个 session 的 IP 地址

java - 为什么有人会在部署时选择/更改特定的日志框架?

java - JTextArea 作为 log4j Logger 的监听器

grails - 如何从log4j中删除详细信息

java - LOG4J:一个记录器的一个附加程序

java - 服务器端 Java 编程需要 servlet 吗?

java - Amazon WebServices 中 Tomcat 上 J2EE webapp 的设计注意事项

docker - 如何使用运行 shell 脚本的结果来初始化 Docker 容器?

ios - 如何在iOS上阅读Cordova通话记录?