Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 如何从Vaadin中的Java EE应用程序远程查看活动日志?_Jakarta Ee_Logging_Glassfish_Vaadin - Fatal编程技术网

Jakarta ee 如何从Vaadin中的Java EE应用程序远程查看活动日志?

Jakarta ee 如何从Vaadin中的Java EE应用程序远程查看活动日志?,jakarta-ee,logging,glassfish,vaadin,Jakarta Ee,Logging,Glassfish,Vaadin,我希望远程监视JavaEE应用程序(部署在glassfish服务器上)的活动。 基本上,我希望使用Vaadin实现客户端,以显示有关服务器端活动的日志 用户想知道服务器端发生了什么…这些日志应该只是高级信息消息 我想这真的取决于所使用的日志框架(如果有的话)。我看过log4j的链锯,但这是一个独立的客户。 否则,我可以逐行远程读取文件(如tail-f)……但我也不知道如何做到这一点 实现这类功能的最佳解决方案是什么?一般来说,您只需使用Vaadin标签,无限读取日志文件(或者直到停止),然后将文

我希望远程监视JavaEE应用程序(部署在glassfish服务器上)的活动。 基本上,我希望使用Vaadin实现客户端,以显示有关服务器端活动的日志

用户想知道服务器端发生了什么…这些日志应该只是高级信息消息

我想这真的取决于所使用的日志框架(如果有的话)。我看过log4j的链锯,但这是一个独立的客户。 否则,我可以逐行远程读取文件(如
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)支持的单一文件系统读取日志文件、事件远程文件

如果您愿意,请尝试最新的开发人员快照-配置屏幕希望能够清楚地显示如何跟踪日志文件,并且具有当前发布版本中无法提供的大量功能

此处提供的快照: