Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用'gradle run'时如何利用应用程序根目录的log4j.properties`_Java_Gradle_Log4j_Classpath - Fatal编程技术网

Java 使用'gradle run'时如何利用应用程序根目录的log4j.properties`

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. 我已经能够确认

在使用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.
我已经能够确认此警告是由于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'
        }
    }
}
也许还有其他更有效的方法来解决这个问题,但这是我发现的第一个适合我的方法