Jakarta ee 如何从Vaadin中的Java EE应用程序远程查看活动日志?
我希望远程监视JavaEE应用程序(部署在glassfish服务器上)的活动。 基本上,我希望使用Vaadin实现客户端,以显示有关服务器端活动的日志 用户想知道服务器端发生了什么…这些日志应该只是高级信息消息 我想这真的取决于所使用的日志框架(如果有的话)。我看过log4j的链锯,但这是一个独立的客户。 否则,我可以逐行远程读取文件(如Jakarta ee 如何从Vaadin中的Java EE应用程序远程查看活动日志?,jakarta-ee,logging,glassfish,vaadin,Jakarta Ee,Logging,Glassfish,Vaadin,我希望远程监视JavaEE应用程序(部署在glassfish服务器上)的活动。 基本上,我希望使用Vaadin实现客户端,以显示有关服务器端活动的日志 用户想知道服务器端发生了什么…这些日志应该只是高级信息消息 我想这真的取决于所使用的日志框架(如果有的话)。我看过log4j的链锯,但这是一个独立的客户。 否则,我可以逐行远程读取文件(如tail-f)……但我也不知道如何做到这一点 实现这类功能的最佳解决方案是什么?一般来说,您只需使用Vaadin标签,无限读取日志文件(或者直到停止),然后将文
tail-f
)……但我也不知道如何做到这一点
实现这类功能的最佳解决方案是什么?一般来说,您只需使用Vaadin标签,无限读取日志文件(或者直到停止),然后将文件内容附加到标签上即可。下面是一个for的代码,它正好执行以下操作:
Thread t = new Thread() {
@Override
public void run() {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(LOGFILE));
String line;
while (running) {
line = reader.readLine();
if (line == null) {
// wait until there is more lines in the file
Thread.sleep(POLL_MS);
} else {
// append to the log Label
synchronized (MyApplication.this) {
log.setValue(log.getValue() + line + "<br />");
}
}
}
} catch (IOException e) {
// TODO: handle me
e.printStackTrace();
} catch (InterruptedException e) {
// TODO: handle me
e.printStackTrace();
} finally {
running = false;
if (reader != null) {
try {
reader.close();
} catch (IOException ignore) {
}
}
}
}
};
t.start();
免责声明:此代码来自非关键应用程序,例如缺少错误处理和HTML转义。一般来说,您只需使用Vaadin标签,无限读取日志文件(或者直到停止),然后将文件内容附加到标签。下面是一个for的代码,它正好执行以下操作:
Thread t = new Thread() {
@Override
public void run() {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(LOGFILE));
String line;
while (running) {
line = reader.readLine();
if (line == null) {
// wait until there is more lines in the file
Thread.sleep(POLL_MS);
} else {
// append to the log Label
synchronized (MyApplication.this) {
log.setValue(log.getValue() + line + "<br />");
}
}
}
} catch (IOException e) {
// TODO: handle me
e.printStackTrace();
} catch (InterruptedException e) {
// TODO: handle me
e.printStackTrace();
} finally {
running = false;
if (reader != null) {
try {
reader.close();
} catch (IOException ignore) {
}
}
}
}
};
t.start();
免责声明:此代码来自非关键应用程序,例如错误处理和HTML转义丢失。我知道您希望在应用程序中执行此功能。我不确定你是否能利用链锯在瓦丁中的作用,但如果你好奇的话,你可以看看VFSLogFilePatternReceiver 无论如何,如果您想尝试一下,看看它是否适合您,请查看电锯信息: 链锯可以从Commons VFS(http、ssh、ftp、smb)支持的单一文件系统读取日志文件、事件远程文件 如果您愿意,请尝试最新的开发人员快照-配置屏幕希望能够清楚地显示如何跟踪日志文件,并且具有当前发布版本中无法提供的大量功能 此处提供的快照:
我知道您希望在应用程序中执行此功能。我不确定你是否能利用链锯在瓦丁中的作用,但如果你好奇的话,你可以看看VFSLogFilePatternReceiver 无论如何,如果您想尝试一下,看看它是否适合您,请查看电锯信息: 链锯可以从Commons VFS(http、ssh、ftp、smb)支持的单一文件系统读取日志文件、事件远程文件 如果您愿意,请尝试最新的开发人员快照-配置屏幕希望能够清楚地显示如何跟踪日志文件,并且具有当前发布版本中无法提供的大量功能 此处提供的快照: