2016-11-28 4 views
1

Я пишу приложение Scala, используя logback для ведения журнала. Я хочу настроить logback, чтобы при запуске моего JAR-файла приложения я мог получить файл журнала. Это моя текущая конфигурация, которая не может производить любой файл журналаКак настроить logback.xml для 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" 

Спасибо

+2

Вашего logback.xml в пути к классам? – Berger

+0

Используйте распечатку Standard Out, чтобы узнать, каков ваш путь к исполняемому файлу. Скорее всего, файл журнала ** создается **, но в папке, которую вы не ожидаете. – MichaelK

+0

попробуйте установить абсолютный путь: /log/test.log. И снова запустите и проверьте? –

ответ

0

Проверьте конфигурационный файл журнала находится в главном/SRC/ресурсов и namedLogback.xml Это путь по умолчанию.

Если logback.xml находится в другом месте, дайте путь в build.sbt файл как:

resourceDirectory in Compile := baseDirectory.value/"yourFilePath" 

При запуске SBT прогон, проверьте, если xx.xml файл присутствует в целевой/scala.XX/classes.

Использования SBT сборки плагин или пакет, чтобы построить свою баночку и выполнить

java -Dlogback.configurationFile=xx.xml -Dfile.ending=UTF8 -cp $SCALA_HOME/lib/scala-library.jar -jar myProject.jar -Dconfig.file=application.conf