別のproperties
ファイルからlog4jログファイルへのパスを取得したいとします。Apache log4j 2.3他のファイルからログファイルパスを取得する
config.properties:私はこれ持っているのであれば、
# Path to logs
logPath=/home/flow/logs/projectName.log
を私はそのパスを取得し、log4j.properties
内部log4j.appender.LOGFILE.File=axis2.log
の値を変更したいです。
どうすればこの問題を解決できますか?
EDIT:私のlog4j.propertiesファイル:
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE
log4j.rootCategory=INFO, CONSOLE, LOGFILE
# Set the enterprise logger priority to FATAL
log4j.logger.org.apache.axis2.enterprise=FATAL
log4j.logger.de.hunsicker.jalopy.io=FATAL
log4j.logger.httpclient.wire.header=FATAL
log4j.logger.org.apache.commons.httpclient=FATAL
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %m%n
# LOGFILE is set to be a File appender using a HTML Layout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis2.log
log4j.appender.LOGFILE.Append=true
#log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
#log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
log4j.appender.LOGFILE.layout=org.apache.log4j.HTMLLayout
log4j.appender.LOGFILE.layout.Title=NPC Simulator Log
アップデート(この方法がうまくいきませんでした):
public class Foo
{
public void test() {
System.setProperty("my.log", ConfigHandle.getProperty("logPath");
Logger log = Logger.getLogger(MyClass.class.getName());
log.info("Testing...");
}
}
config.properties
# log4j.properties
logPath=/home/flow/logs
log4j.properties
...
log4j.appender.LOGFILE.File=${my.log}/axis2.log
...
キー* log4j.appender.R.File * log4j.propertiesにログファイルのパスを追加する* – PVR
log4jの使用を開始したばかりなので、そのキーを追加するとどのように役立ちますか?私はそれを使う方法がわからない。 (私の 'log4j.properties'ファイルをopに追加しました) –
ファイルパスを動的に変更しようとしているなら、これをチェックしてください:http://stackoverflow.com/q/11846593/3632059 – PVR