15

ライブラリを使用してログをファイルに書き込む必要があるアプリケーションを作成していますがorg.apache.commons.logging、開始方法がわかりません。

誰でも私を助けることができますか?

感謝をこめて。

4

2 に答える 2

18

このサンプルを試してください。最初に、このような2つのプロパティファイルが必要です。

アプリケーションのクラスパスに配置されるcommons-logging.properties。このファイルの内容は次のようになります。

    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

Jdk14LoggerのほかにLog4jロガーを使用することもできます。2番目のカスタムプロパティファイルが必要です。たとえば、log-config.propertiesは次のようになります。

    # The following creates two handlers
    handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
    # Set the default logging level for the root logger
    .level=SEVERE
    # log level for the "com.example" package
    sample.logging.level=FINE
    # Set the default logging level
    java.util.logging.ConsoleHandler.level=ALL
    java.util.logging.FileHandler.level=FINE
    # Set the default formatter
    java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    # Specify the location and name of the log file
    java.util.logging.FileHandler.pattern=D:/temp/log/test.log

これはサンプルテストクラスです

     public class TestLog {

     private static Log log = LogFactory.getLog(TestLog.class);
     public static void main(String[] args) {
          log.info("Testing Info Message.");
              if (log.isDebugEnabled()) {
                  log.debug("Testing Debug Message.");
          }
        }
     }

これは、Eclipseを使用したサンプルパッケージ構造です。

ここに画像の説明を入力してください

そして、VM引数の下にTestLogクラスのEditConfigurationを追加します。

  -Djava.util.logging.config.file=/D:/dev/workspace/LoggingTest/bin/log-config.properties(your properties file path)

ここに画像の説明を入力してください

そして実行すると、D:/temp/log/test.logの下にログファイルがあります。

于 2012-08-06T06:28:47.540 に答える
2

これがお役に立てば幸いです...これが私たちのプロジェクトで行った方法です...

A. プロジェクトに jar を含めます。

B.ロガー定義用にlog4j.xmlを次のように定義します...

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

    <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
    <param name="File" value="${jboss.server.log.dir}/server.log"/>
    <param name="Append" value="false"/>
    <param name="MaxFileSize" value="1048576KB"/>
    <param name="MaxBackupIndex" value="3"/>

 <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
 </layout>      
</appender>

<root>
   <appender-ref ref="CONSOLE"/>
   <appender-ref ref="FILE"/>
</root>

</log4j:configuration>

C. クラスでロガーを使用します。

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

Class YourClass{
    private static Log log = LogFactory.getLog(YourClass.class);

    public void yourMethod(){
        log.info("Your Message");
    }
}

編集: D. JBoss AS 環境があるため、アプリケーションは次のように log4j.xml を読み取るように構成されます (同等の構成が必要です)。

<mbean code="org.jboss.logging.Log4jService"
  name="jboss.system:type=Log4jService,service=Logging"
  xmbean-dd="resource:xmdesc/Log4jService-xmbean.xml">
  <attribute name="ConfigurationURL">resource:jboss-log4j.xml</attribute>
  <!-- Set the org.apache.log4j.helpers.LogLog.setQuiteMode. As of log4j1.2.8
  this needs to be set to avoid a possible deadlock on exception at the
  appender level. See bug#696819.
  -->
  <attribute name="Log4jQuietMode">true</attribute>
  <!-- How frequently in seconds the ConfigurationURL is checked for changes -->
  <attribute name="RefreshPeriod">60</attribute>
</mbean>
于 2012-08-05T11:05:38.453 に答える