Java 使用'gradle run'时如何利用应用程序根目录的log4j.properties`
在使用Log4J的项目上使用Java 使用'gradle run'时如何利用应用程序根目录的log4j.properties`,java,gradle,log4j,classpath,Java,Gradle,Log4j,Classpath,在使用Log4J的项目上使用gradle run时,我看到以下错误 log4j:WARN No appenders could be found for logger (gma.api.GmaApi). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 我已经能够确认
gradle run
时,我看到以下错误
log4j:WARN No appenders could be found for logger (gma.api.GmaApi).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
我已经能够确认此警告是由于Log4J无法找到应用程序根目录中的Log4J.properties文件造成的。为了确定这一点,我将\u JAVA_OPTIONS
设置为-Dlog4j.debug
,这为我提供了详细的调试信息,以解析log4j.properties。我还通过将log4j.properties文件放在更传统的src/main/resources
目录中确认了这一点,从而消除了这些警告,并产生了预期的日志输出
我希望将
log4j.properties
保存在应用程序根目录中,并由log4j拾取它。我对如何做到这一点的理解是将其添加到“类路径”中但是,我不知道如何从project.gradle文件中执行此操作,以便在使用gradle时能够获取它。在结结巴巴地阅读了文档和各种论坛帖子之后,我得出了一个概念,它似乎对在您的资源所在地教授gradle很有用。因为我对只包含一个文件log4j.properties
感兴趣,所以我还需要了解如何通过过滤器实现这一点,这样我的整个应用程序根就不会成为源应用程序资源
sourceSets {
main {
java {
srcDir 'src'
}
// Used to pick up log4j.properties resource at the root of the applicatoin directory
resources {
srcDir '.'
include 'log4j.properties'
}
}
}
也许还有其他更有效的方法来解决这个问题,但这是我发现的第一个适合我的方法