2

Log4j に特有の問題があります。を使用して Weblogic 10 にデプロイしていlog4j.xmlます。それはうまくいきます。このプラットフォームで開発し、Weblogic 10 にデプロイできるように、Tomcat 6 を実行する方法を考え出しました。

log4j.properiesTomcat 6 で JULI ロギング メカニズムを使用する追加の JAr を使用して、Tomcat 6 で動作させる方法を見つけました。残念ながら、私のlog4j.xml(Weblogic で動作する) は Tomcat 6 で動作しませんlog4j.properties

でアプリケーション クラス階層を示す方法を理解できませんでしたlog4j.propertieslog4j.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ですか? (アペンダーのタイプ、DatePattern、ConversionPattern、FileName、レイアウトなど、他の値を処理しました。)

問題固有のコードのみをお送りしました。

または、Tomcat 6 を使用した私の戦争アーカイブの一部である作成方法についての答えを知っている場合log4j.xml(JULI jar が配置されており、うまく動作しますlog4j.properties)、私に知らせてください。

助けてください。

スハース

4

5 に答える 5

2

私はあなたの質問について完全に明確ではありません。問題なくTomcat 6にデプロイlog4jしました(xml構成で発生している特定の問題を投稿できますか?)。log4j.properies「 Tomcat 6 で JULI ロギング メカニズムを使用する追加の jar を使用して、Tomcat 6 で動作させる方法を理解しました」という意味がわかりません)。

  • 構成は適切な場所にありますか?
  • 一部の jar がグローバル tomcat ( $TOMCAT_HOME/lib) ディレクトリからロードされていますか? その場合、ライブラリは webapp からではなく、グローバル ディレクトリから構成を探している可能性があります。

構成で個別のクラス階層を管理する方法について話しているだけの場合は、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
于 2009-04-24T17:46:25.163 に答える
0

http://boncey.org/2006_7_25_log4j_with_xml_configurationによると

  1. export CATALINA_OPTS="-Dlog4j.configuration=log4j.xml".xml(私はそれがではなく探すように強制すると思います.properties
  2. log4j.xmlファイルを入れるWEB-INF/classes

私は同様の問題を抱えていましたが、これは私にとってはうまくいきました。

于 2012-01-04T19:39:13.437 に答える
0

以下に説明するいくつかの簡単な手順は、Web アプリケーションの log4j を初期化するように設定するのに役立ちます。

1) ディレクトリにコピーlog4j.xmlします(TOMCAT_HOME)/CATALINA_HOME/conf。私のlog4j.xmlアプリケーションは以下のようになります:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
 <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d{ABSOLUTE}
      %5p %c{1}:%L -Preetam %m%n"/>

        </layout>
     </appender>
       <root>
        <!--   <priority value="info"></priority> -->
               <priority value="debug"></priority>
          <appender-ref ref="stdout"/>
        </root>
</log4j:configuration>

2) トムキャットを止める

tomcat6 stop /var/tmp/tomcat-20120622.log (use your application specific stop.sh script)

3)(TOMCAT_HOME)/CATALINA_HOME/confディレクトリに、tomcat6.confファイルがあります。以下の説明に従ってファイルを編集します。にない場合はCATALINA_OPTS作成tomcat6.confします。

# Settings for the CATALINA_OPTS to pick web application's log4j.xml from the specified location
CATALINA_OPTS="${CATALINA_OPTS}-Dlog4j.debug - Dlog4j.configuration=file:${CATALINA_HOME}/conf/log4j.xml"

startup.sh4) アプリケーション固有のスクリプトで tomcat を起動します。

5) 以上で、すべて完了です。ログをチェックして、Tomcat が でlog4j.xml指定した を読み取っているかどうかを確認しますtomcat6.conf

tail -f /var/tmp/tomcat-20120622.log

Jun 22, 2012 3:28:35 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Jun 22, 2012 3:28:35 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Jun 22, 2012 3:28:35 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Jun 22, 2012 3:28:35 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/12  config=null
Jun 22, 2012 3:28:35 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 547 ms
log4j: Using URL [file:/opt/otccalypso/guiadmd01/tomcat6/conf/log4j.xml] for automatic    log4j configuration.
log4j: Preferred configurator class: org.apache.log4j.xml.DOMConfigurator
log4j: System property is :null
log4j: Standard DocumentBuilderFactory search succeded.
log4j: DocumentBuilderFactory is: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
log4j: debug attribute= "null".
log4j: Ignoring debug attribute.
log4j: Threshold ="null".
log4j: Level value for root is  [debug].
log4j: root level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{ABSOLUTE}        %5p %c{1}:%L -Preetam %m%n].
log4j: Adding appender named [stdout] to category [root].
于 2012-06-22T13:35:20.727 に答える
0

log4j.xmlでもログの作成に問題はなかったようです

提案されているように、 http://tomcat.apache.org/tomcat-6.0-doc/logging.htmlを使用してロギング メカニズムを作成しました。

興味深いことに、Tomcat 6 の bin ディレクトリにログが作成されていました!!! これは現在の作業ディレクトリと関係があり、私の場合は Catalina の設定によると bin ディレクトリのようです

于 2009-06-04T19:21:28.393 に答える
0

でtomcat6を使用していlog4jます。以下のマニュアルに従ってtomcatにインストールlog4jしました。古いバージョン (4.1-5.5) よりも複雑です。私はあなたがあなたの戦争であなたをディレクトリのlog4j.xml下に置くべきだと信じています.WEB-INF/classes

追加のアプローチは、これにスプリング フレームワークを使用することです。Log4jConfigListener の APIを参照してください。

于 2009-04-27T11:43:28.647 に答える