0

単純な Java クラスを作成し、バックエンドで JVM によって実行されるログなど、背後で実行されるログを確認したいというクエリが 1 つあります。私はlog4j JARを持っています。これを達成する方法についてアドバイスをお願いします。

WebApp の場合に生成されるのと同じログを確認したいので、それを Java App に再利用できます。

4

4 に答える 4

3

ここで log4j api/demo を見てみてください http://www.vaannila.com/log4j/log4j-tutorial/log4j-tutorial.html

log4j を使用して、任意のクラスおよび任意のアプリケーションのログを生成できます。これは必ずしも Web アプリである必要はありません。

于 2012-04-17T04:26:24.560 に答える
0

これは、達成しようとしていることに適応できるはずの非常に単純な例です。

于 2012-04-17T04:32:02.263 に答える
0

「単純な Java クラス」がたまたま Java EE コンテナー (Tomcat、JBoss、または WebSphere の .jsp またはサーブレットなど) にある場合は、次のことを行う必要があります。

1) org.apache.log4j.Logger をインポートします。

2) クラスで静的インスタンスを宣言します。

 EXAMPLE:  `static Logger logger = Logger.getLogger ("MyApp");`

3) ロガーを使用する

 EXAMPLE: `logger.info ("something interesting happened");`

4) CLASSPATH に log4j.java と独自の log4j.properties を含める場合は、他にもする必要はありませ

Tomcat またはアプリ サーバーで log4j を使用する場合の詳細情報は次のとおりです。

上記の tutorialspoint.com リンクから、「ログを記録する」非常に単純なプログラム例を次に示します。

import org.apache.log4j.Logger;

import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class log4jExample{
  /* Get actual class name to be printed on */
  static Logger log = Logger.getLogger(
                      log4jExample.class.getName());

  public static void main(String[] args)
                throws IOException,SQLException{

     log.debug("Hello this is an debug message");
     log.info("Hello this is an info message");
  }
}
于 2012-04-17T04:32:04.213 に答える
0

ステップ 1: プロジェクトに log4j jar ファイルをインポートする

ステップ 2:-Log Java ファイルを作成する

public Log(Class className) {
        logger = Logger.getLogger(className.getClass());
        logger.getClass();
        final String LOG_PROPERTIES_FILE_NAME = "log4j.properties";
        props = loadLogFile(LOG_PROPERTIES_FILE_NAME, className);
        //props =getPropsFile(LOG_PROPERTIES_FILE_NAME, className);
        PropertyConfigurator.configure(props);
    }

public static Properties loadLogFile(String propertyFile, Class className) {
        //String filePath="";
        try {
            Properties ps = null;

            ResourceBundle bundle = ResourceBundle
                    .getBundle("resource.DbProperties");
            String logPath = bundle.getString("logs.path");
            File filePath = new File(logPath);
            if (!filePath.exists()) {
                filePath.mkdirs();
            }
            props.clone();
            props = getPropsFile(propertyFile, className);
            props.setProperty("info_file_path", filePath.toString());
            //  PropertyConfigurator.configure(props);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return props;
    }


public void info(String message) {
    logger.info(message);
}

public void warn(String message) {
    logger.warn(message);
}

public void error(String message) {
    logger.error(message);
}

public void fatal(String message) {
    logger.fatal(message);
}

public void printStackTrace(Throwable ex) {
    StringWriter sw = new StringWriter();
    ex.printStackTrace(new PrintWriter(sw));
    logger.error("\n" + sw.toString());
}

log4j.properties

log4j.rootCategory=LOGFILE
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=${info_file_path}\\info_Pension_application.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.Threshold=DEBUG
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
于 2012-04-17T04:37:26.197 に答える