Một ví dụ đơn giản sẽ là:
Servlet (thay đổi đường dẫn của tập tin đăng nhập khi cần thiết): Trang
@WebServlet(name = "Log", urlPatterns = { "/log" })
public class LogServlet extends HttpServlet {
private static final long serialVersionUID = 7503953988166684851L;
public LogServlet() {
super();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Path path = FileSystems.getDefault()
.getPath("/path/to/tomcat/logs", "catalina.out");
StringBuilder logContent = new StringBuilder();
logContent.append("<pre>");
try (BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8);) {
String line = null;
while ((line = reader.readLine()) != null) {
logContent.append(line).append("<br/>");
}
} catch (IOException x) {
// Take care of that
}
logContent.append("</pre>");
resp.getWriter().print(logContent.toString());
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
}
}
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Log viewer</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write(unescape('%3Cscript src="http://jquery.com/jquery-wp-content/themes/jquery/js/jquery-1.10.2.min.js"%3E%3C/script%3E'))
</script>
<script type="text/javascript">
var logging = false;
function refreshLog() {
if (logging) {
$.get('/log', function(data) {
$('#log').html(data);
});
}
if (logging) {
setTimeout(function() {
refreshLog()
}, 5000);
}
}
function toggleLogs() {
if (logging) {
logging = false;
$("#tog").val("Start");
} else {
logging = true;
$("#tog").val("Stop");
refreshLog();
}
}
</script>
</head>
<body style="width: 100%; padding: 0; margin: 0">
<input type="button" id="tog" onclick="toggleLogs()" value="Start" />
<div id="log" style="width: 100%; padding: 0; margin: 0"></div>
</body>
</html>
Bạn có thể tạo một trang với một số javascript sử dụng thời gian chờ và gọi qua AJAX một servlet (sẽ đọc và trả lại nhật ký) và hiển thị nội dung trong div/textarea. Một servlet phát triển hơn sẽ chỉ trả về nội dung mới từ log – JScoobyCed
bạn có nhận được giải pháp nào không? Plz cho tôi biết tôi cũng muốn như vậy. –