Log4J пользовательские поля

XHTML просто о коммуникации между системами. HTML очень трудно проанализировать из-за количества изменений, которые могут произойти относительно того, что хорошо формируется. Так как XML строг в своей интерпретации, эта проблема была удалена.

Думают об Архитектуре RESTful. Если бы URL является постоянным местоположением к объекту, то системы, которые хотели бы получить доступ к этому объекту, должны смочь использовать информацию, возвращенную из доступа к URL. XHTML не делает это возможным по сути, потому что система могла уже проанализировать HTML и получить необходимую информацию. XML просто делает это легче. Нет предопределенного набора никакого ограничения тегов, которые мешают классифицировать данные в документе (хотя techinically можно сделать это в HTML, потому что браузеры проигнорируют его). Можно использовать то, что Вы хотите классифицировать, какие данные получены.

17
задан Scott Cowan 6 November 2009 в 13:53
поделиться

3 ответа

Из приведенного вами примера я могу только догадываться, что AppServerPatternLayout не входит в пакет logging . Все остальное выглядит найти. Добавьте

log4j.DEBUG=true

в свой файл свойств. log4j затем сбросит то, что он делает, при чтении свойств. Возможно, это даст вам представление о том, что не так.

Если это не поможет, рассмотрите возможность использования вложенных диагностических контекстов .

5
ответ дан 30 November 2019 в 14:38
поделиться

Может ли случиться так, что при загрузке через свойства AppServerPatternLayout создается до создания AppServerLoggerFactory ? Если вы выбираете значения своих настраиваемых полей при создании, а не при первом использовании, это может быть объяснением.

2
ответ дан 30 November 2019 в 14:38
поделиться

Я не уверен, что вы добьетесь этого с помощью конфигурации свойств, но я думаю, что вы можете сделать это с помощью XML, который дает вам множество вариантов настройки:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
  xmlns:log4j="http://jakarta.apache.org/log4j/"
  debug="true"
  reset="true"
>
  <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <layout class="your.package.AppServerPatternLayout">
      <param name="ConversionPattern" value="YOUR CONVERSION PATTERN"/>
    </layout>
  </appender>

  <root>
    <level value="info"/>
    <appender-ref ref="stdout" />
  </root>

  <loggerFactory class="your.package.AppServerLoggerFactory">
    <param name="server" value="MyServer"/>
    <param name="component" value="MyComponent"/>
    <param name="version" value="1.0r"/>
  </loggerFactory>

</log4j:configuration>

Вам потребуется определите установщики на AppServerLoggerFactory для сервера, компонента и версии. Также прочтите log4j.dtd в общем макете XML-файла конфигурации.

Сохраните этот файл как log4j.xml и определите -Dlog4j.configuration = / path / to / log4j.xml в вашем сценарии запуска, или замените log4j.properties на log4j.xml в своем веб-приложении.

Я никогда раньше не пробовал настраивать LoggerFactory, но может случиться так, что из-за того, что он устанавливается конфигуратором, вы можете использовать стандартный getLogger , например

//Logger logger = AppServerLogger.getLogger("some.log");
Logger logger = Logger.getLogger("some.log");
2
ответ дан 30 November 2019 в 14:38
поделиться
Другие вопросы по тегам:

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