Пример конфигурации xml для log4j, есть «основное» Java-приложение и вы хотите записать в файл - PullRequest
18 голосов
/ 12 апреля 2010

Есть ли примеры файлов конфигурации log4j (XML).

У меня есть основное приложение Java.

Я хочу, чтобы log4j выводил на консоль И записывал в файл.

Любые примеры этого были бы очень благодарны.

Я использую netbeans, если это имеет значение.

Ответы [ 3 ]

29 голосов
/ 12 апреля 2010

Просто добавьте в свой log4j.xml несколько приложений, например:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
                     xmlns:log4j='http://jakarta.apache.org/log4j/'>

   <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/>
      </layout>
   </appender>

   <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
      <param name="append" value="false"/>
      <param name="file" value="out/learning.log"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
      </layout>
   </appender>

   <root>
      <level value="INFO"/>
      <appender-ref ref="consoleAppender"/>
      <appender-ref ref="fileAppender"/>
   </root>

</log4j:configuration>
6 голосов
/ 05 февраля 2014

Вот один из примеров примера log4j.xml, используемого в проекте Hibernate. Просто нужно поместить этот файл в classpath, и вы получите сообщения журнала как на консоли, так и в файле. тег.

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"  
    debug="false">  
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">  
 <layout class="org.apache.log4j.PatternLayout">  
  <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />  
 </layout>  
</appender>  
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">  
        <appender-ref ref="CONSOLE" />  
        <appender-ref ref="FILE" />  
</appender>  
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">  
    <param name="File" value="C:/hibernatelog.log"/>  
    <param name="MaxBackupIndex" value="100" />  
 <layout class="org.apache.log4j.PatternLayout">  
  <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />  
</layout>  
</appender>  
    <category name="org.hibernate">  
        <priority value="DEBUG" />  
    </category>  
    <category name="java.sql">  
        <priority value="debug" />  
    </category>  
    <root>  
        <priority value="INFO" />  
        <appender-ref ref="ASYNC" />  
    </root>  
</log4j:configuration>  

Я нашел это более наглядное описание, чем приведенное выше. Надеюсь, это поможет.

0 голосов
/ 12 апреля 2010

Обычно нужно поместить файл log4j.properties в ваш путь к классам. Документ log4j расскажет вам все, что вам нужно знать о наличии двух приложений для консоли и файла, это в их примерах. Другими словами, не беспокойтесь о менее распространенном формате XML и придерживайтесь очень распространенного формата свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...