从Manifest Class-path加载logback.xml

时间:2016-03-07 11:52:03

标签: java logback

我尝试从可执行文件# ENABLE_CORRECTION="true"文件外部加载logback.xml文件。

myapp.jar的{​​{1}}文件大致如下:

myapp.jar

并居住在

META-INF/MANIFEST.MF

(还有很多其他jar依赖项,将其删除)。

现在,如果我使用Manifest-Version: 1.0 Class-Path: logger-config lib/lib/jcl-over-slf4j-1.7.18.jar lib/slf4j-api-1.7.18.jar Main-Class: com.mycompany.MyAppMain 运行应用程序,它会启动,但不会选择logback.xml文件

来自他们的文档:

  

如果找不到这样的文件,它会检查类路径中的文件logback.xml。

http://logback.qos.ch/manual/configuration.html

我知道我可以使用my-app/ lib/ jcl-over-slf4j-1.7.18.jar slf4j-api-1.7.18.jar logger-config/ logback.xml myapp.jar 覆盖它,但是有没有办法将XML文件放到classpath中,以便logback自动加载它?它似乎只有在我将java -jar myapp.jar打包到logback.configurationFile(将其置于logback.xml目录中)时才有效,但随后配置文件将传播到使用myapp.jar的其他JAR作为依赖。

1 个答案:

答案 0 :(得分:1)

也许你只是把它剪掉了,但是你的类路径没有指定logback-classic依赖项。 您必须确保在类路径定义中logback之前显示slf4j。另请注意logger-config路径的尾部斜线 - 如果没有logback.xml,则退回将找不到您的Class-Path: lib/logback-classic-1.1.6.jar lib/logback-core-1.1.6.jar lib/jcl-over-slf4j-1.7.18.jar lib/slf4j-api-1.7.18.jar logger-config/ (有关详细信息,请参阅here)。

这样的事情应该有效:

[UIView animateWithDuration:0.8
                      delay:0
     usingSpringWithDamping:0.5
      initialSpringVelocity:0.5
                    options:(UIViewAnimationOptionAutoreverse|
                             UIViewAnimationOptionRepeat)
                 animations:^{
                     CGRect frame = view.frame;
                     frame.origin.y -= 8;
                     view.frame = frame;
                 } completion:nil];