Настроить ведение журнала с помощью Lift - PullRequest
3 голосов
/ 17 февраля 2011

Вики-страница Lift о ведении журнала гласит, что большая часть настроек выполняется автоматически. Сейчас моя проблема в том, что у меня уже есть работающий бэкэнд с его собственной конфигурацией регистрации и файлом log4j.properties в моем classpath, который следует использовать. Также есть зависимости от log4j и SLF4j уже в пути к классам.

Основная проблема в том, что я получаю полный отладочный вывод для всего. В частности, в спящем режиме - что очень раздражает.

Я использую Lift 2.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. Вторая попытка делала следующее:

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

Поскольку я не хочу, чтобы Lift настраивал ведение журнала для меня, так как бэкэнд уже настроен, я бы хотел сейчас полностью его отключить. Ох, и я также попытался LogBoot.logSetup = () => false без удачи.

Буду очень признателен за любую помощь по этому вопросу.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2011

Ответ на вопрос в списке рассылки Lift .

Исправлено устранение зависимости logback и включение log4j и slf4j-log4j. Никакая другая конфигурация в boot() не требуется, кроме действительной default.log4j.xml.

2 голосов
/ 16 сентября 2011

У меня была похожая проблема, и я нашел следующее решение:

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
  }
}
...