2013-08-15 5 views
0

У меня есть динамическое веб-приложение. Я работаю в весенней обстановке, с maven и mybatis. Я развертываю военный файл на tomcat. Я использую log4j для регистрации данных. Я хочу, чтобы эти данные были доступны в реальном времени для всех. Например, если домашняя страница веб-приложения равна localhost:8080, тогда я хочу что-то вроде localhost: 8080/logs для отображения журналов в реальном времени. Я знаю, что для этого нужно сопоставить запрос Spring. Но я не знаю, как заставить его работать, когда мой файл продолжает обновляться.Разверните html-файл на tomcat, который создается после развертывания войны

Любая помощь с благодарностью

+0

Вы думаете, что @RequestMapping ("errLog.log"), то он просто считывает файл журнала и выгружает его в response.getOutputStream()? Я предполагаю, что я запутался в этом вопросе, вам нужна помощь в том, чтобы заставить ваши сопоставления работать или использовать сопоставления/сервлет для вывода файла журнала. –

+0

@ ns47732, Спасибо за ваш ответ. Мне нужна помощь с использованием mapping/servlet для вывода файла журнала на веб-страницу. – ProgrammingPanda

ответ

4

Если это весенний mvc.
В вашем контроллере вам необходимо прочитать файл и записать его в ответ.
Это на самом деле просто.

Фрагмент кода для вас как ссылка: Ниже приведен код SUDO. Просто дать вам направление

@RequestMapping ("/ журнал") общественного класса Controller {

public void readLog(HttpRequest req, HttpResponse resp) { 

    File file = new File('YOUR_FILE_LOCATION') 

    FileReader fr = new FileReader(file); 


    // you can read every line for the log file and write into resposne 
    while(str = nextLine()) { 
     resp.println(str) 
    } 

    fr.close() 

} 

}

1

Вы можете использовать HTML функцию Макет из log4j следующим образом:

# Define the root logger with appender file 
log4j.rootLogger = DEBUG, FILE 

# Define the file appender 
log4j.appender.FILE=org.apache.log4j.FileAppender 
log4j.appender.FILE.File=${catalina.base}/webapps/yourappname/log.html 

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

Этот файл должен быть доступен по адресу http://localhost:8080/yourappname/log.html. Tomcat предоставит каталину.base/catalina.home как системное свойство или вы можете предоставить полный путь к файлу.

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