2013-02-24 2 views
1

Я пытаюсь создать файл log4j с использованием макета html. Heres моих файлы 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 

Как я могу это сделать? в настоящее время я пытаюсь использовать свойства, но он удаляет все, и появляется только эта строка.

Пожалуйста, обратите внимание, что файл журнала путь зависит от места, откуда баночка файл моего проекта выполняется это будет как этот

(jarDir) /logs/myfilename.html

ответ

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); 
+0

Спасибо за помощь, я нашел еще один способ, но это сработало бы тоже. – chettyharish

+0

добавить другой способ был? – Damo

Смежные вопросы