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

Java 如何为JAR应用程序配置logback.xml?,java,scala,logback,Java,Scala,Logback,我正在编写Scala应用程序,使用logback进行日志记录。我想配置logback,这样当我运行我的应用程序JAR文件时,我可以得到一个日志文件。这是我当前的配置,无法生成任何日志文件 <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{H

我正在编写Scala应用程序,使用logback进行日志记录。我想配置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>

谢谢

检查日志配置文件是否位于main/src/resources中并命名为logback.xml这是默认路径

如果logback.xml位于其他位置,请在build.sbt文件中指定路径:

resourceDirectory in Compile := baseDirectory.value / "yourFilePath"
运行sbt run时,请检查target/scala.xx/classes文件夹中是否存在xx.xml文件

使用sbt汇编插件或包构建jar并执行

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

您的logback.xml是否在类路径中?请使用标准输出打印输出找出可执行文件的路径。很可能正在创建日志文件,但它位于您不期望的文件夹中。请尝试设置绝对路径:/log/test.log。然后再次运行并检查?@Berger:噢,我在编写代码时将其放在resources目录下,但在运行应用程序时,我并没有将logback.xml附加到类路径。那是我的名字吗problem@MichaelKarnerfors:我使用
scala-classpath
来运行应用程序,那么应该在哪里创建日志文件呢?
java -Dlogback.configurationFile=xx.xml -Dfile.ending=UTF8  -cp $SCALA_HOME/lib/scala-library.jar  -jar myProject.jar -Dconfig.file=application.conf