3

Lift wiki page on logging 指出很多设置是自动完成的。现在我的问题是我已经有一个正在运行的后端,它有自己的日志配置和log4j.properties我的类路径中应该使用的文件。类路径中已经存在对 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 收到一个错误,因此必须对其进行解析。但是我仍然得到所有调试输出。第二次尝试执行以下操作:

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

由于我不想让 Lift 为我配置日志记录,因为后端已经配置,我想现在完全关闭它。哦,我也试过LogBoot.logSetup = () => false没有运气。

我将不胜感激在这个问题上的任何帮助。

4

2 回答 2

3

这个问题在电梯邮件列表上得到了回答。

解决方法是删除logback依赖项并同时包含log4jslf4j-log4j。除了boot()有效的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 回答