【问题标题】:Java : Help Regarding Exception Report with server LogsJava : 关于服务器日志异常报告的帮助
【发布时间】:2013-02-19 15:38:13
【问题描述】:

我是 java 新手,目前在 Struts 1.3 工作。我的问题与java更相关。

以下是场景,我不确定要遵循的最佳方法。

我想在我的项目中创建一个错误报告功能,其中我正在复制堆栈跟踪并将其插入数据库的表中,例如“错误日志”表,其中包含异常类型、日期、用户等和其他字段。但现在我要做的是: 我必须借助发生异常时拥有的服务器日志来识别发生异常的包名称、文件、方法和行号。 但问题是日志为您提供了异常、文件和行号,但它还包含我的包中没有的错误,如下面的 HttpServlet.service(HttpServlet.java:710) 等:

java.lang.NullPointerException 
com.candidate.query.CandSearchAction.execute(CandSearchAction.java:34) 
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) 
org.apache.struts.action.RequestProcessor.proc ess(RequestProcessor.java:274) 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 

在上述情况下,我的 CandSearchAction.java 第 34 行出现空指针异常。 现在我想知道如何区分或仅提取指向我的 java/jsp 文件的行,以便我可以相应地过滤它们。

任何人都可以就这种情况或如何解决这个问题提供帮助。有没有我可以使用的库或任何可以帮助我的库。 等待对我有帮助的回复。

【问题讨论】:

    标签: java jsp tomcat jboss5.x struts-1


    【解决方案1】:

    如果您的代码遵循您在示例中使用的相同基本结构,您可以解析堆栈跟踪以查找以您的包名称 1 开头的任何内容,并且只使用这些行。

    【讨论】:

    • 我如何识别或列出我的项目的所有包,以便我可以将其与堆栈跟踪进行比较...是否有我需要使用的特定方法或 API?
    • Exception.getStackTrace() 返回一个 StackTraceElements 数组。您可以获取第一个(异常名称),然后从元素 1 开始,您可以查看它是否以 () 开头。如果是,记录它,如果不是,离开循环并继续。不幸的是,我不知道有任何库或 API 可以获取您所有的包名称。我的直觉是创建一个常量类,它返回这些名称的硬编码列表,所以至少只有一个地方需要维护它。
    • 是的,我现在正在做的事情..但我认为可能有更好的方法可以获得相同的结果。感谢您的回复埃里克!!
    • 我不知道,对不起!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多