我想清理/统一Maven构建的日志输出。不幸的是,maven插件的依赖项使用java.util.Logging( JUL )。简单地添加org.slf4j:jul-to-slf4j
作为额外的依赖项来重定向日志输出并没有帮助。排除目前也不起作用,因为它是JUL,因此不是依赖。
这是我的配置,包含特定插件及其依赖项:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.7.11</version>
<executions>...</executions>
<configuration>
<defaultOptions>
<extraargs>
<extraarg>-xjc-Xbg</extraarg>
</extraargs>
</defaultOptions>
</configuration>
<dependencies>
<!-- This one uses JUL with logging level WARN -->
<dependency>
<groupId>org.apache.cxf.xjcplugins</groupId>
<artifactId>cxf-xjc-boolean</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
</plugin>
我设法通过将具有以下内容的logging.properties文件添加到项目的根文件夹来关闭/配置JUL本身:
# Turn off any java.util.Loggers (or use SEVERE to see problems)
.level=OFF
此外,我必须使用以下参数执行Maven(或将其设置为MAVEN_OPTS
):
mvn clean install -Djava.util.logging.config.file=${basedir}/logging.properties
如果没有额外的文件和/或JVM参数(仅限pom.xml),有没有办法实现相同的结果?
答案 0 :(得分:0)
我有类似的行为:在运行我的Struts2测试用例时,从CXF 2.6.3生成的webservices类获取WARNING消息,污染了我的测试日志。
由于日志跟踪未显示发送的包,我试图配置错误的包。
我已将此问题添加到我的setUp()
测试用例方法中,该测试扩展了XWorkTestCase
(或您需要的任何内容):
public void setUp() throws Exception{
super.setUp();
java.util.logging.Logger.getLogger("org.apache.cxf").setLevel(Level.OFF);
}
当我从maven运行我的测试时,不会再出现来自CXF的日志消息。
答案 1 :(得分:0)
在使用maven构建项目时,插件cxf-codegen-plugin的以下配置阻止显示DEBUG日志条目:
<configuration>
<fork>once</fork>
<additionalJvmArgs>
-Dorg.apache.cxf.Logger=null
</additionalJvmArgs>
</configuration>
答案 2 :(得分:0)
您可以设置所需的日志级别,而不是按照属性文件或完全禁用另一个日志中建议的所有日志记录:
<additionalJvmArgs>-Dorg.apache.cxf.level=OFF</additionalJvmArgs>
级别必须为java.util.logging.Level
之一。