Пожалуйста, помогите. У меня есть веб-приложение .war, которое будет работать на Tomcat. Я не знаю, как его имя будет. Я использую ведение журнала log4j, которое задается следующим образом:
log4j.rootLogger = INFO, EK7731API, stdout
# Console print
log4j.logger.deng=INFO
log4j.logger.org.ehcache=DEBUG
log4j.logger.com.mchange.v2.c3p0=INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.ImmediateFlush=true
log4j.appender.stdout.Threshold=debug
log4j.appender.stdout.Append=true
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d - %m%n
# File logger
log4j.logger.EK7731API = INFO, EK7731API
log4j.appender.EK7731API=org.apache.log4j.RollingFileAppender
log4j.appender.EK7731API.File=${catalina.base}/EKlog/EK7731API/EK7731API.out
log4j.appender.EK7731API.ImmediateFlush=true
log4j.appender.EK7731API.MaxFileSize=10MB
log4j.appender.EK7731API.layout=org.apache.log4j.PatternLayout
log4j.appender.EK7731API.layout.conversionPattern=[%p] %d %c %M - %m%n
logger создает файл при запуске
$ {Catalina.base} /EKlog/EK7731API/EK7731API.out
где папка EK7731 Я хочу, чтобы она называлась .war
Если я разверну файл foo.war на сервере, я хочу, чтобы регистратор был установлен на
${Catalina.base}/EKlog/foo/EK7731API.out
если файл - bar.war, то путь будет:
${Catalina.base}/EKlog/bar/EK7731API.out
Как заставить регистратор узнать имя веб-службы и затем соответственно настроить ведение журнала?
public class InitServletListener implements ServletContextListener {
final static Logger logger = Logger.getLogger("InitServletListener");
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
System.out.println("STOP ..... TOMCAT");
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
String path = this.getClass().getClassLoader().getResource("").getPath();
SimpleLayout layout = new SimpleLayout();
FileAppender appender;
try {
appender = new FileAppender(layout, path, false);
logger.addAppender(appender);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Спасибо