我正在使用Scala库来发出名为Bee-Client的HTTP请求。 Bee-Client,每个动作都会向控制台输出大量调试信息。它使用slf4j框架来做到这一点。
我的问题是禁用该日志记录并将其重定向到文件中。
我尝试过不同的方法来禁用java.util.logging,但它们都没有任何区别。最后我意识到slf4j可以使用其他后端,但我不知道如何识别它。
所以我可以同时使用Bee-Client的日志和源代码。如何理解它正在使用哪个日志后端?
答案 0 :(得分:1)
通常通过查看感兴趣的依赖项的瞬态依赖项,您可以找出它使用的日志框架。在许多情况下,它会使用某种java日志API,并允许您提供您喜欢的记录器实现。例如,查看项目的maven构建文件:http://repo.bigbeeconsultants.co.uk/repo/uk/co/bigbeeconsultants/bee-client_2.10/latest/poms/bee-client_2.10.pom。
This链接描述了如何在项目中设置Bee-Client。基本上我们可以从那里学习SBT依赖:
libraryDependencies ++= Seq(
"uk.co.bigbeeconsultants" %% "bee-client" % "0.21.+",
"org.slf4j" % "slf4j-api" % "1.7.+",
"ch.qos.logback" % "logback-core" % "1.0.+",
"ch.qos.logback" % "logback-classic" % "1.0.+"
)
resolvers += "Big Bee Consultants" at "http://repo.bigbeeconsultants.co.uk/repo"
是它使用slf4j
api和logback
实现进行日志记录。您需要做的就是设置logback配置并在项目中列出上面列出的依赖项。
例如,在类路径的某处创建一个配置文件(可能在这里:src/main/resources/logback.xml
)。将此内容添加到它并且您已完成设置:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>myApp.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
有关如何配置回退的详细信息,请参阅here。
答案 1 :(得分:1)
可以在运行时使用的另一种更通用的方法是here。