java - 如何在运行时更改外部类日志记录级别后刷新 log4j

标签 java logging log4j jena

我有一些想要禁用的警告。他们来自

org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper

类。所以我使用 log4j 并在 rutime 调用

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

但什么也没发生。

为此,我调试了有问题的代码,前 3 次显示警告,但在第 4 次时,级别发生了更改。 我在请求时(在构造函数中)更改了日志级别,因此我认为当考虑到运行时应用的规则时,log4j 中有一些刷新机制。

有没有办法立即触发这种情况?

编辑: 警告消息是:

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)

最佳答案

您可以在配置文件(log4j.properties)中禁用日志记录,因此这将在启动时设置:

log4j.logger.org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper=错误

您发布的警告看起来很像 Java Util Logging 消息,这些消息不会由 Log4J 控制,因为它是一个不同的框架。您可以在虚拟机“logging.properties”文件中禁用该消息:

org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper.level=SEVERE

或者您可以添加SLF4J到您的项目以将遗留框架消息重定向到 Log4J。为此,请输入 slf4j-api.jar , jcl-over-slf4j.jar , jul-to-slf4j.jarslf4j-log4j12.jar在你的类路径中。

关于java - 如何在运行时更改外部类日志记录级别后刷新 log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38477005/

相关文章:

java - hsqldb 内部事件日志配置

tomcat - 单独的异常日志文件

java - 在 xhtml 页面中打印 Facelets 参数

java - 优先级队列上的 classCastException; java

java - 如何在 Java 中循环播放音频?

java - 如何画一个简单的图表?

logging - 如何格式化log4j2中的stacktrace?

java - log4j2 找不到配置文件

java - 如何将 log4j conversionPattern 应用于特定包?

java - 仅在某些类中查看日志消息