Используя log4j, входящий в систему weblogic 9/10

Вы можете использовать object.assign, а затем использовать Object.keys на obj2. Это даст массив как [city1,city2]. Используйте map для итерации этого массива и создания нового ключа и значения

let obj1 = {
  name: 'a',
  age: '23'
};
let obj2 = {
  city1: 'x',
  city2: 'y'
};

let obj3 = Object.assign({}, obj1, {
  cities: Object.keys(obj2).map(function(item) {
    return {
      [item]: obj2[item]
    }
  })
});

console.log(obj3)

5
задан Edwin 23 February 2009 в 08:59
поделиться

5 ответов

Я ничего не знаю о WebLogic, в частности, но добавлении -Dlog4j.debug заставит log4j говорить Вам, где он ищет свою конфигурацию. Я нашел что быть неоценимым при разыскивании регистрирующихся проблем у кота ранее.

Проверьте документы для PropertyConfigurator и DOMConfigurator для получения дополнительной информации о log4j процессе конфигурации.

6
ответ дан 14 December 2019 в 13:48
поделиться

При помещении log4j.xml в путь к классу WebLogic возьмет его. Я использую Apache палата общин, регистрирующаяся с log4j в WebLogic, и это - легкая вещь сделать. Никакая потребность в тех опциях Java.

0
ответ дан 14 December 2019 в 13:48
поделиться

Где Вы устанавливаете вышеупомянутые опции? Попытайтесь поместить-Dlog4j опцию в опции Server Start для каждого сервера, которым управляют, который будет использовать log4j

0
ответ дан 14 December 2019 в 13:48
поделиться

Указывать вход к Регистратору Log4j вместо Входа Java по умолчанию:

* When you start the Administration Server, include the following Java option in the weblogic.Server command:

  -Dweblogic.log.Log4jLoggingEnabled=true 

От: http://edocs.bea.com/wls/docs103/logging/config_logs.html#wp1014610

0
ответ дан 14 December 2019 в 13:48
поделиться

Я никогда не получил эту работу, как я собирался.

То, что я в конечном итоге сделал, было создать какую-то работу. Я регистрирую обработчик, который слушает Weblogic ServerLog. Из этого обработчика я делаю свою регистрацию в Log4J. Эта регистрация может быть перенаправлена, чтобы сделать все, что я хочу.

Создайте пользовательский loghandler:

public class CustomLogHandler extends Handler {
..

    public CustomLogHandler () throws SecurityException, IOException,
            NamingException {

        String log4jConfig = LogFilterConfiguration.getLog4jDirectory();
        classlogger.info("log4j configured for file"+ log4jConfig );
        PropertyConfigurator.configure(log4jConfig);
        logFilterConfiguration = new LogFilterConfiguration();
    }

    public void publish(LogRecord record) {
        WLLogRecord rec = (WLLogRecord) record;
        if (!isLoggable(rec))
            return;
        if (getLoggerName().. is something i want to log) {
                        // do my own log4j logging
                  }

затем создайте приложениеLifecyCleListener. С методом почтового пути:

public void postStart(ApplicationLifecycleEvent evt) {
    Logger logger = LoggingHelper.getServerLogger();
    Handler oldHandler = null;
    Handler[] currentHandlers = logger.getHandlers();

              .. code to remove an old custom handler if exists...
    with something like logger.removeHandler(oldHandler);

    // add custom handler to serverlogger.
    CustomLogHandler h = null;      
    try {
        h = new CustomLogHandler ();
        // If handler was removed we can add a new version.
        if (!(unRemovedHandlerClasses.contains(h.getClass()))){
            logger.addHandler(h);
            registerMBean(h) ;
        }
    } catch (Exception nmex) {
    classLogger.error("Error adding CustomLogHandler to serverlogger "
                + nmex.getMessage());
        logger.removeHandler(h);
    }


}
0
ответ дан 14 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: