Я занимаюсь разработкой веб-сервлета и у меня возникли путаницы с log4j.properities, и я решил вызвать инициализирующий регистратор в конструкторе.
public static Logger logger = Logger.getLogger(MyProject.class.getName());
public MyProject() {
super();
// TODO Auto-generated constructor stub
ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource("log4j.properties");
PropertyConfigurator.configure(url);
}
В общем, файл журнала о веб-сервлете ссылается на каталог журнала tomcat.
log4j.rootLogger=debug, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.base}/logs/myproject.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Но, при кодировании jUnit для веб-сервлета, файл журнала ссылается на неправильный адрес, потому что $ {catalina.base} - пустой текст.Журнал ошибок находится здесь.
[junit] log4j:ERROR setFile(null,true) call failed.
[junit] java.io.FileNotFoundException: /logs/myproject.log (No such file or directory)
Итак, пожалуйста, научите меня мудрому управлению с файлом журнала.Я надеюсь остановить вывод файла журнала во время тестирования с помощью jUnit.