【问题标题】:How can I get the log-entries in my server.log file to print out on a jsf page如何获取 server.log 文件中的日志条目以在 jsf 页面上打印
【发布时间】:2015-01-21 20:19:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: java jsf logging jboss


    【解决方案1】:

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

    【讨论】:

    • 我已经想到了,但是使用记录器写入日志文件比使用 db 执行 id 更舒服...我想我首先尝试从我的应用程序中读取日志文件...
    • 它不会更改代码中的日志记录,您只需要一个将写入数据库而不是文件的附加程序。
    【解决方案2】:

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

    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";
    

    这适用于具有以下调试输出的窗口:

    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上测试过

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 2013-06-23
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多