単純な Java クラスを作成し、バックエンドで JVM によって実行されるログなど、背後で実行されるログを確認したいというクエリが 1 つあります。私はlog4j JARを持っています。これを達成する方法についてアドバイスをお願いします。
WebApp の場合に生成されるのと同じログを確認したいので、それを Java App に再利用できます。
ここで log4j api/demo を見てみてください http://www.vaannila.com/log4j/log4j-tutorial/log4j-tutorial.html
log4j を使用して、任意のクラスおよび任意のアプリケーションのログを生成できます。これは必ずしも Web アプリである必要はありません。
これは、達成しようとしていることに適応できるはずの非常に単純な例です。
「単純な 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");
}
}
ステップ 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