如何在应用程序执行期间覆盖logging.properties?

时间:2016-07-29 14:48:44

标签: java maven logging java.util.logging

我有一个使用外部库的应用程序,它会转储大量警告消息,这会在运行时减慢应用程序的速度。

WARNING: Property http://localhost:8080/dwa/rm/urn:rational::1-55422447386d3378-M-00000200/types/attrDef-7 could not be parsed as datatype http://www.w3.org/2001/XMLSchema#dateTime
com.hp.hpl.jena.datatypes.DatatypeFormatException: Lexical form '2015-06-10' is not a legal instance of Datatype[http://www.w3.org/2001/XMLSchema#dateTime -> class com.hp.hpl.jena.datatypes.xsd.XSDDateTime] Lexical form '2015-06-10' is not a legal instance of Datatype[http://www.w3.org/2001/XMLSchema#dateTime -> class com.hp.hpl.jena.datatypes.xsd.XSDDateTime] during parse -org.apache.xerces.impl.dv.InvalidDatatypeValueException: cvc-datatype-valid.1.2.1: '2015-06-10' is not a valid value for 'dateTime'.
    at com.hp.hpl.jena.graph.impl.LiteralLabelImpl.getValue(LiteralLabelImpl.java:339)
    at com.hp.hpl.jena.graph.Node_Literal.getLiteralValue(Node_Literal.java:39)
    at com.hp.hpl.jena.rdf.model.impl.LiteralImpl.getValue(LiteralImpl.java:98)

此外部库使用Java日志记录API。深层问题信息here

我试过

Logger.getLogger("org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper").setLevel(Level.OFF);

但是一旦考虑到,否则不会在不同的运行。所以我需要以一般方式解决我的问题 - 覆盖 logging.properties 文件。

如果应用程序仅在我的机器上运行,我可以这样做:

-Djava.util.logging.config.file=C:\Temp\logging.properties 

但它是一个Web应用程序,它运行在我没有控件的不同环境中。那么它是一种禁用来自该问题类的消息的方法吗?使用maven打包新配置还是其他一些技巧?

3 个答案:

答案 0 :(得分:1)

我认为可能的解决方案如下:

    System.setProperty("java.util.logging.config.file", "C:\Temp\logging.properties ");

答案 1 :(得分:0)

我遇到了这个问题,我可以通过控制台上的JMX Logging Bean更改设置的唯一方法

答案 2 :(得分:0)

  

我试过了   Logger.getLogger("org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper").setLevel(Level.OFF);

如果您以编程方式更改任何设置,请

You have to prevent loggers from being garbage collected