我正在编写使用logback进行日志记录的Scala应用程序。我想配置logback,这样当我运行我的应用程序JAR文件时,我可以得到一个日志文件。这是我当前的配置,它不能生成任何日志文件
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<!-- path to your log file, where you want to store logs -->
<file>./log/test.log</file>
<append>false</append>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
这是我的构建sbt:
name := "distributed-sorting"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"
libraryDependencies ++= Seq(
"junit" % "junit" % "4.8.1" % "test"
)
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.7"
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.5.0"
libraryDependencies += "com.lihaoyi" %% "upickle" % "0.4.3"
谢谢
答案 0 :(得分:0)
检查日志配置文件是否在main / src / resources中并命名为logback.xml这是默认路径。
如果将logback.xml放在其他位置,请将build.sbt文件中的路径指定为:
resourceDirectory in Compile := baseDirectory.value / "yourFilePath"
运行sbt run时,检查target / scala.XX / classes文件夹中是否存在xx.xml文件。
使用sbt assembly插件或包来构建你的jar并执行
java -Dlogback.configurationFile=xx.xml -Dfile.ending=UTF8 -cp $SCALA_HOME/lib/scala-library.jar -jar myProject.jar -Dconfig.file=application.conf