1

HTMLレイアウトを使用してlog4jファイルを作成しようとしています。ここに私のlog4jファイルがあります

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/htmlLayout.html

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout
log4j.appender.FILE.layout.Title=HTML Layout Example
log4j.appender.FILE.layout.LocationInfo=true

これは静的ですが、メイン メソッドがこの行を渡すようにしたい

log4j.appender.FILE.File=myfilepath/myfilename.html

これどうやってするの?現在、プロパティを使用しようとしていましたが、すべてが削除され、この行だけが表示されます。

ログ ファイルのパスは、プロジェクトの jar ファイルが実行されている場所に依存することに注意してください。次のようになります。

(jarDir)/logs/myfilename.html

4

1 に答える 1

1

デフォルトの初期化動作に頼ることができるのではなく、log4j コンフィギュレーターを直接呼び出す必要があります。プロパティファイルにlog4j.properties以外の名前を付けて、デフォルトの手順で見つからないようにしてから、コードで実行できます

Properties props = new Properties();
// if MyClass is in package com.example, look for
// com/example/log4j-config.properties inside the jar
InputStream in = MyClass.class.getResourceAsStream("log4j-config.properties");
try {
  props.load(in);
} finally {
  in.close();
}

// override file location
props.setProperty("log4j.appender.FILE.File", "myfilepath/myfilename.html");

LogManager.resetConfiguration();
PropertyConfigurator.configure(props);
于 2013-02-24T10:46:00.070 に答える