3

ロギングに関するLiftwikiページには、多くのセットアップが自動的に行われると記載されています。現在の私の問題は、独自のログ構成と使用する必要のあるlog4j.propertiesファイルがクラスパスにある実行中のバックエンドをすでに持っていることです。すでにクラスパスにあるlog4jとSLF4jへの依存関係もあります。

主な問題は、すべての完全なデバッグ出力が得られることです。特に休止状態-これは非常に迷惑です。

私はLift2.3-M1を使用していて、最初に次のことを試しましたboot()

Logger.setup = Full(Log4j.withFile(getClass().getResource("/props/log4j.xml")))

log4j.xml私が現在使用しているのは、DEBUG出力を単純に抑制するために、すぐに一緒にハッキングされます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration threshold="info" xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="CA" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="[%p] %c{2} %m%n"/>
    </layout>
  </appender>
  <root>
    <level value="info"/>
    <appender-ref ref="CA"/>
  </root>
</log4j:configuration>

エラーを作成するとlog4j.xml、SAXParserからもエラーが発生するため、解析する必要があります。ただし、まだすべてのDEBUG出力を取得しています。2番目の試みは次のことをしていました:

LiftRules.configureLogging = () => ()
Logger.setup = Full(Logback.withFile(getClass().getResource("/props/log4j.xml")))

バックエンドがすでに構成されているため、Liftにログを構成させたくないので、ここで完全にオフにします。ああ、私もLogBoot.logSetup = () => false運が悪かった。

この問題についての助けをいただければ幸いです。

4

2 に答える 2

3

質問はLiftメーリングリストで回答されました

修正は、logback依存関係を削除し、との両方を含めることlog4jですslf4j-log4jboot()有効な以外の設定は必要ありませんdefault.log4j.xml

于 2011-02-17T19:22:36.197 に答える
2

私は同様の問題を抱えていて、次の解決策に出くわしました:

import net.liftweb.common.{ Empty, Logger }
import net.liftweb.http.Bootable
class BootLoader extends Bootable {
  def boot = {
    // other boot configuration ...

    // prevent Lift from messing up my log4j config                                                                                                                          
    Logger.setup = Empty
  }
}
于 2011-09-16T19:51:17.573 に答える