如何为JAR应用程序配置logback.xml?

时间:2016-11-28 12:38:13

标签: java scala logback

我正在编写使用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"

谢谢

1 个答案:

答案 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