Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Как в log4 писать INFO и DEBUG в разние файлы ?


Автор: Fameing 6.4.2006, 18:05
Как в log4 писать INFO и DEBUG в разние файлы ?

Немогу понять. Использую log4j.properties ?

подскажите пожалуста буду очень рад ответу.

Автор: tux 7.4.2006, 02:38
Цитата(Fameing @ 6.4.2006, 23:05 Найти цитируемый пост)
Как в log4 писать INFO и DEBUG в разние файлы ?

Никак. Можно писать в один файл INFO и DEBUG, в другой только INFO.

Автор: Fameing 7.4.2006, 09:15
Неочень хорошо придумано. smile
Добавлено @ 09:15
а как можно войты из этой ситуации ?

Автор: LSD 7.4.2006, 12:01
Смотри в сторону org.apache.log4j.spi.Filter.

Автор: LSD 8.4.2006, 15:02
Писать в аппендер только сообщения определенного уровня:
Код
LevelRangeFilter rangeFilter = new LevelRangeFilter();
rangeFilter.setLevelMax(Level.OFF);
rangeFilter.setLevelMin(Level.WARN);
ConsoleAppender errAppender = new ConsoleAppender(new PatternLayout("%d{dd-MM-yyyy HH:mm:ss.SSS} | %-5p | %m%n"), "System.err");
errAppender.addFilter(rangeFilter);

Или в конфигурационном файле прописать, что-то вроде:
Код
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>

  <appender name="Console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%-5p: %m%n"/>
    </layout>
  </appender>

  <appender name="File" class="org.apache.log4j.FileAppender">
    <param name="File" value="main.log"/>
    <param name="Append" value="false"/>
    <param name="BufferedIO" value="false"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d [%-5p] %m {at %c}%n"/>
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
      <param name="LevelMax" value="OFF"/>
      <param name="LevelMin" value="INFO"/>
    </filter>
  </appender>

  <appender name="DebugFile" class="org.apache.log4j.FileAppender">
    <param name="File" value="debug.log"/>
    <param name="Append" value="false"/>
    <param name="BufferedIO" value="false"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d [%-5p] %m {at %c}%n"/>
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
      <param name="LevelMax" value="DEBUG"/>
      <param name="LevelMin" value="ALL"/>
    </filter>
  </appender>

  <root>
    <priority value ="ALL"/>
    <appender-ref ref="Console"/>
    <appender-ref ref="File"/>
    <appender-ref ref="DebugFile"/>
  </root>

</log4j:configuration>

Автор: tux 8.4.2006, 15:54
Оказывается действительно можно.

Автор: sandello 18.4.2006, 16:51
Класс. Поставьте "+" от моего имени :-) 

Автор: tux 18.4.2006, 16:56
Цитата(sandello @  18.4.2006,  21:51 Найти цитируемый пост)
Класс. Поставьте "+" от моего имени :-)  

Сделано. 

Автор: LSD 18.4.2006, 20:29
Я добавил http://vingrad.ru/JAVA-JAV-003024 в FAQ. 

Автор: Fameing 5.6.2006, 11:00
А как прикрутить данние настройки к log4j неподскажете ? 

Автор: batigoal 5.6.2006, 11:15
http://logging.apache.org/log4j/docs/manual.html, раздел Configuration. 

Автор: Fameing 5.6.2006, 16:54
Я с log4j.properties разобрался а вот как подгрузить конфигурацию с XML файла ?

сейчас делаю так 
Код

    public void contextInitialized(ServletContextEvent event) {
        String homeDir = event.getServletContext().getRealPath("/");
        File propertiesFile = new File(homeDir, "WEB-INF/log4j.properties");
        PropertyConfigurator.configure(propertiesFile.toString());
    }
 

Автор: LSD 5.6.2006, 23:33
Цитата(Fameing @  5.6.2006,  17:54 Найти цитируемый пост)
как подгрузить конфигурацию с XML файла ?

Код
DOMConfigurator.configure("log4j.xml");
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)