Java JBoss server.log删除条目“;WARN org.apache.commons.beanutils.locale.converter.DecimalLocaleConverter-未提供模式,使用默认值。”;

Java JBoss server.log删除条目“;WARN org.apache.commons.beanutils.locale.converter.DecimalLocaleConverter-未提供模式,使用默认值。”;,java,apache,jakarta-ee,jboss,log4j,Java,Apache,Jakarta Ee,Jboss,Log4j,我们使用JBoss EAP 6.1.0.GA(AS 7.2.0.Final-redhat-8)。在我们的server.log文件中 有许多日志条目 WARN [org.apache.commons.beanutils.locale.converters.DecimalLocaleConverter] No pattern provided, using default. 我们需要删除 问题是,我不确定这些消息是否真的来自我们自己的应用程序(让我们称之为UKApp),因为我们的JBoss

我们使用JBoss EAP 6.1.0.GA(AS 7.2.0.Final-redhat-8)。在我们的server.log文件中 有许多日志条目

 WARN [org.apache.commons.beanutils.locale.converters.DecimalLocaleConverter]    No pattern provided, using default.
我们需要删除

问题是,我不确定这些消息是否真的来自我们自己的应用程序(让我们称之为UKApp),因为我们的JBoss服务器托管了许多应用程序,而不仅仅是UKApp。此外,我们的应用程序UKApp使用log4j,并且有自己的log4.properties配置文件,其中包含以下行:

# struts packages
log4j.logger.org.apache=ERROR, R
还有那几排

# Rolling file appender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${LOG_ROOT}/Applications/UKApp.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%t] %p %c %x - %m%n
# Set the max size of the file and the number of backup files
log4j.appender.R.MaxFileSize=2000KB
log4j.appender.R.MaxBackupIndex=3
实际上,我们的应用程序UKApp可能会单独使用apache类

org.apache.commons.beanutils.locale.converter.decimallocalConverter

更具体地说,它的方法调用

DecimalLocaleConverter.convert(int, null);
它会输出上面引用的警告消息

但是:这个调用也可能被其他应用程序使用。另外,根据我们的配置文件,我们将整个包org.apache的日志级别设置为ERROR,并向R appender输出:

# struts packages
log4j.logger.org.apache=ERROR, R
在本例中,它是我们自己的文件${LOG_ROOT}/Applications/UKApp.LOG,而不是general server.LOG

这是否意味着警告消息并非来自我们的应用程序UKApp

谢谢大家!


kindreagrds:Alexander Mintchev

如果调用方法
DecimalLocaleConverter.convert(int,null)
然后使用语句
DecimalLocalConverter.convert(int,“###,###.##”)

仔细阅读了其他帖子,例如:

我们注意到我们的
jboss部署结构.xml
配置文件包含以下
exlusions
部分:

<exclusions>
            <module name="org.slf4j" />
            <module name="org.slf4j.ext" />
            <module name="org.slf4j.jcl-over-slf4j" />
            <module name="org.slf4j.impl" />
            <module name="org.apache.log4j" />
            <module name="org.apache.commons.logging" />
            <module name="org.jboss.logging" />
            <module name="org.jboss.logmanager" />
</exclusions>

但是,我们还注意到,
部分前面的
部分如下所示:

<dependencies>
    <module name="org.picketlink" slot="main"/>
    <module name="org.apache.xalan" slot="main"/>
    <module name="org.apache.xerces" slot="main"/>
    <module name="javax.servlet.api" slot="main" export="true"/>
    <module name="javax.xml.bind.api" slot="main" export="true"/>
    <module name="com.sun.xml.bind" slot="main" export="true"/>
    <module name="javax.xml.ws.api" slot="main" export="true"/>
    <module name="org.apache.commons.logging" slot="main" export="true"/>
    <module name="org.apache.cxf.impl" slot="main" export="true"/>
</dependencies>

显然,
org.apache.commons.logging
条目出现在
部分


我们从
部分删除了条目,它解决了我们的问题。

您正在调用
DecimalLocalConverter.convert(int,null)从您的应用程序?实际上,我们不直接使用此方法调用-它可能由我们所指的某个JAR使用。但是:我创建了我的小型测试应用程序,它直接使用类和上述方法调用来测试日志记录。在我的小测试应用程序中,我添加了配置条目,然后,它只是一个警告,忽略它。log4j.logger.org.apache.commons.beanutils.locale.converter.DecimalLocaleConverter=WARN,stdout,R,消息进入我们自己的自定义日志文件,实际上,我必须清除所有这些消息中的server.log文件