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

时间:2014-11-24 07:01:15

标签: java jsf logging jboss

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

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

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

2 个答案:

答案 0 :(得分:1)

转而登录数据库并从那里提供内容。不再依赖于特定目录(尽管您需要数据库)。

答案 1 :(得分:0)

不是最漂亮的解决方案,但对我有用的还包括一些调试功能:

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上进行了测试