Как сделать log4j очистить журнал при запуске?

Простой, короткий, эффективный. Никакого дополнительного html не нужно.

.pvw-title { color: transparent; }

.pvw-title:after { 
        content: "New Text To Replace Old";
        color: black; /* set color to original text color */
        margin-left: -30px;
        /* margin-left equals length of text we're replacing */
    }

Мне пришлось сделать это для замены текста ссылки, кроме дома, для палочек woocommerce

SASS / LESS

body.woocommerce .woocommerce-breadcrumb > a[href$="/shop/"] {
    color: transparent;
    &:after { 
        content: "Store";
        color: grey;
        margin-left: -30px;
    }
}

CSS

body.woocommerce .woocommerce-breadcrumb > a[href$="/shop/"] {
    color: transparent;
}

body.woocommerce .woocommerce-breadcrumb > a[href$="/shop/"]&:after { 
    content: "Store";
    color: @child-color-grey;
    margin-left: -30px;
}
30
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

Если Вы установите append параметр к false, то основной файл журнала будет "запущен новый", когда приложение перезапустит. Вы подразумеваете, что хотите, чтобы какие-либо "прокрученные" файлы журнала были удалены также?

39
ответ дан erickson 23 May 2017 в 12:34
поделиться
  • 1
    Это - одна из очень немногих вещей о рубине, который я нахожу раздражающими. О, хорошо. – Nathan Lilienthal 17 May 2013 в 16:55

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

Этот код берет данный Регистратор и циклы иерархия регистратора, пока это не находит Регистратор, которому присоединили Appenders. Если это никогда не делает, то это сдается. Если это делает, это циклично выполняется по всему Appenders, подключенному к тому Регистратору и для каждого, который является RollingFileAppender, это вынуждает журнал прокрутиться.

Что-то вроде этого должно быть намного легче сделать в log4j, но я не нашел более простой способ сделать его.

public void rollLogFile(Logger logger) {
  while (logger != null && !logger.getAllAppenders().hasMoreElements()) {
    logger = (Logger)logger.getParent();
  }

  if (logger == null) {
    return;
  }

  for (Enumeration e2 = logger.getAllAppenders(); e2.hasMoreElements();) {
    final Appender appender = (Appender)e2.nextElement();
    if (appender instanceof RollingFileAppender) {
      final RollingFileAppender rfa = (RollingFileAppender)appender;
      final File logFile = new File(rfa.getFile());
      if (logFile.length() > 0) {
        rfa.rollOver();
      }
    }
  }
}
5
ответ дан Eddie 23 May 2017 в 22:34
поделиться
Другие вопросы по тегам:

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