web-dev-qa-db-ja.com

log4jのサンプルxml構成、「メイン」Javaアプリケーションがあり、ファイルに書き込みたい

Log4j構成ファイル(XML)の例はありますか?.

Javaメインアプリケーションがあります。

Log4jをコンソールに出力して、ファイルに書き込みます。

これのどんな例でも大歓迎です。

それが重要であれば、私はnetbeansを使用しています。

19
Blankman

次のように、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>
29
duffymo

Hibernateプロジェクトで使用されるlog4j.xmlのサンプルの例を次に示します。このファイルをクラスパスに配置するだけで、コンソールとファイルの両方にログメッセージが表示されます。特定のアペンダーが必要な場合は、タグを変更できます。

<?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>  

私はこれが1つ以上の説明的なものであることを発見しました。

6
Ravi Kant

典型的なことは、log4j.propertiesファイルをクラスパスに置くことです。 log4j docには、コンソールとファイルに2つのアペンダーがあることを知るために必要なすべてが示されています。言い換えれば、あまり一般的でないXML形式を気にせず、非常に一般的なプロパティ形式に固執することです。

0
bmargulies