Java 如何让server.log文件中的日志条目在jsf页面上打印出来

Java 如何让server.log文件中的日志条目在jsf页面上打印出来,java,jsf,logging,jboss,Java,Jsf,Logging,Jboss,我正在使用JBoss7,我有一个服务器应用程序,它有一个db层、一个业务层和一个带有一些jsf页面的web层。在我的应用程序中,我使用不同层上的记录器“org.slf4j.logger”将一些警告和错误记录到日志文件中 我的问题是,如何在jsf页面上打印server.log文件中的日志条目 我不想直接读取…jboss-as-7.1.1.Final/standalone/log上的文件,因为我的应用程序可能运行在不同的平台上…改为登录到数据库并从那里提供内容。不再依赖于特定的目录(尽管您需要一个数

我正在使用JBoss7,我有一个服务器应用程序,它有一个db层、一个业务层和一个带有一些jsf页面的web层。在我的应用程序中,我使用不同层上的记录器“org.slf4j.logger”将一些警告和错误记录到日志文件中

我的问题是,如何在jsf页面上打印server.log文件中的日志条目


我不想直接读取…jboss-as-7.1.1.Final/standalone/log上的文件,因为我的应用程序可能运行在不同的平台上…

改为登录到数据库并从那里提供内容。不再依赖于特定的目录(尽管您需要一个数据库)。

不是最漂亮的解决方案,但对我来说,包括一些调试的解决方案是:

String pathToJSF = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/");
System.out.println("Real Path is: " + pathToJSF);
String fileSeparator = File.separator;
System.out.println("JBoss log directory is: " + pathToJSF.substring(0, pathToJSF.indexOf("standalone" + fileSeparator) + ("standalone" + fileSeparator).length()) + "log" + fileSeparator);
String jbossLogFile = pathToJSF.substring(0, pathToJSF.indexOf("standalone" + fileSeparator) + ("standalone" + fileSeparator).length()) + "log" + fileSeparator + "server.log";
这在具有以下调试输出的windows上起作用:

Real Path is: C:\jboss-eap-7.1.0_non_community\jboss-eap-7.1\standalone\deployments\My.ear\My.war
JBoss log directory is: C:\jboss-eap-7.1.0_non_community\jboss-eap-7.1\standalone\log\
同样值得注意的是,这只适用于JBoss EAP 6或更高版本,因为我正在指定/寻找以前JBoss版本中不存在的“独立”。这样做可能不太好,但我确实需要获取服务器日志文件,使其可用并包含在可下载的zip文件中


现在,阅读文件并在JSF页面中显示它,我将留给您,因为我非常确定您知道如何做到这一点!这也在linux上进行了测试,我已经想到了,但是使用记录器写入日志文件要比使用db写入id舒服得多。。。我想我首先尝试从我的应用程序中读取日志文件…它不会更改代码中的日志记录,您只需要一个将写入数据库而不是文件的appender。