2016-07-20 7 views
2

У меня есть некоторые предупреждения, которые я хочу отключить. Они исходят отКак обновить log4j после изменения уровня ведения внешнего класса во время выполнения

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

класс. Поэтому я использую log4j, и я звоню в rutime

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

но ничего не происходит.

Для этой цели я отлаживаю проблемный код и сначала три раза выводил предупреждение, но на 4-м ударе уровень был изменен. Я изменил уровень журнала при попрошайничестве (в конструкторе), поэтому я полагаю, что в log4j есть некоторый механизм обновления, когда принимается во внимание применяемое правило выполнения.

Есть ли способ вызвать это немедленно?

Edit: Сообщение предупреждение:

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) 

ответ

2

Вы можете отключить протоколирование в вас файл конфигурации (log4j.properties), так что это будет при вводе в эксплуатацию уже:

log4j.logger.org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper = ERROR

Предупреждение, которое вы разместили, похоже на Java Util Logging messa ge, те не будут контролироваться Log4J, потому что это другая структура. Вы можете либо отключить сообщение в файле виртуальных машин «logging.properties»:

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

Или вы можете добавить SLF4J в свой проект, чтобы сориентировать наследие рамочных сообщений Log4J. Для этого поставьте slf4j-api.jar, jcl-over-slf4j.jar, jul-to-slf4j.jar и slf4j-log4j12.jar в свой путь к классам.

+0

В моем проекте у меня более 15 регистраторов, и я не хочу перезагружать все конфигурации. Пс. У меня есть log4j.xml с настройками. Если я ставлю там <регистратор имя = "org.eclipse.lyo.oslc4j.provider.jena.JenaModelHelper"> \t <уровень значение = "OFF" /> \t Ничего не происходит. – Xelian

+1

Можете ли вы опубликовать сообщения о предупреждениях. – Stefan

+0

Я добавил в основной пост. – Xelian