关于日志记录的提升wiki page表明很多设置都是自动完成的。现在我的问题是我已经有一个运行后端,它有自己的日志配置和我的类路径中应该使用的log4j.properties
文件。 log4j和SLF4j也存在于类路径中的依赖关系。
主要问题是我获得了所有内容的完整调试输出。特别是Hibernate - 这非常烦人。
我正在使用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
而没有运气。
我非常感谢有关此问题的任何帮助。
答案 0 :(得分:3)
问题得到解答on the Lift mailing list。
修复方法是删除logback
依赖项,并同时包含log4j
和slf4j-log4j
。除了有效的boot()
之外,还不需要default.log4j.xml
中的其他配置。
答案 1 :(得分: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
}
}