2016-10-12 6 views
0

Я делаю проект JavaFx, связанный с хранилищем данных Documentum, и я пытаюсь добавить функцию ведения журнала с помощью Log4jV2. Я уже загрузил файл и добавил следующие Jars в свои библиотеки файл . (log4j-api-2.6.2.jar , log4j-core-2.6.2.jar) и успешно импортировали следующее:Развернуть Log4j V2 в проекте JavaFx, подключенном к Documentum

import org.apache.log4j.LogManager; 
import org.apache.log4j.xml.DOMConfigurator; 
import org.apache.logging.log4j.Logger; 
import org.apache.logging.log4j.core.LoggerContext; 
import org.apache.logging.log4j.core.LoggerContext; 

Затем я создал файл с именем config.xml со следующим содержанием:

<?xml version="1.0" encoding="UTF-8"?> 

<Configuration> 
    <Appenders> 
    <Console name="STDOUT" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    </Appenders> 
    <Loggers> 
    <Logger name="org.apache.log4j.xml" level="info" additivity="false"/> 
    <Root level="debug"> 
     <AppenderRef ref="STDOUT"/> 
    </Root> 
    </Loggers> 
    </Configuration> 

и поместил его в моем исходном файле рядом с моими другими классами, то начал настраивать его как beloew:

public class BGMController implements Initializable { 
    static final org.apache.log4j.Logger logger = LogManager.getLogger(BGMController.class.getName()); 

/////other content of my program ///////////////// 

public void initialize(URL location, ResourceBundle resources) { 
    DOMConfigurator.configure("config.xml"); 

    // createCheckbox(); 
    // createTable(); 

     logger.warn(" test Sample warn message"); 
     logger.error(" test Sample error message"); 
     logger.fatal(" test Sample fatal message"); 
     logger.debug(" test Sample debug message"); 
     logger.info(" test Sample info message"); 



    } 


} 

в результате я получаю все эти ошибки, плюс мою ошибку, предупреждаю, фатальные, кажется, работают нормально, а не отлаживать nd info:

Любая идея, как я могу это исправить. мне потребовалось несколько дней, и я понятия не имею, где я делаю свою ошибку: |

0 [JavaFX Application Thread] ERROR com.documentum.fc.common.impl.logging.LoggingConfigurator - Problem locating log4j configuration 
    3 [JavaFX Application Thread] WARN com.documentum.fc.common.impl.logging.LoggingConfigurator - Using default log4j configuration 
    20900 [JavaFX Application Thread] WARN application.BGMController - test Sample warn message 
    20900 [JavaFX Application Thread] ERROR application.BGMController - test Sample error message 
    20901 [JavaFX Application Thread] FATAL application.BGMController - test Sample fatal message 
+0

Вы когда-нибудь закрывали тег ''? –

+0

@MichaelPickett Пропущено в вопросе. Спасибо, что заметили;) –

+0

Была ли эта проблема, или вы просто пропустили ее в вопрос? –

ответ

1

DomConfigurator предназначен для Log4j 1.x, поэтому вы никогда не настраиваете Log4j. Поведение по умолчанию должно происходить только с ошибками регистрации и фатальными для STDOUT.

Вы хотите использовать Configurator - Log4j 2. Но так как вы объявили статический регистратор до того, как ваш метод инициализации может когда-либо быть вызван, Log4j собирается инициализировать, прежде чем у вас есть возможность его настроить, поэтому вы, вероятно, сначала создается конфигурация по умолчанию, а затем ваша конфигурация после вызова метода initialize.

+0

hmmm ... Поэтому, основываясь на моем понимании, я использую синтаксис для log4j V1 для настройки xml-файла, и поскольку я использую версию 2, он сталкивается с ошибкой и не работает, и моя статическая инициализация не находит какой-либо конфигуратор, поэтому он просто использует значение по умолчанию? Я прав ? :) –

+0

Да, это то, что я сказал. – rgoers

+0

Я вижу ... что приведет к следующему вопросу, и вот как я должен настроить xml в версии 2.? XD –

 Смежные вопросы

  • Нет связанных вопросов^_^