寻找Java的在线异常跟踪程序
有人知道类似于Java的东西吗 看起来有一些类似的东西(请参见捕获反馈),但不一样寻找Java的在线异常跟踪程序,java,exception,logging,log4j,logback,Java,Exception,Logging,Log4j,Logback,有人知道类似于Java的东西吗 看起来有一些类似的东西(请参见捕获反馈),但不一样 在log4j/logback集成的理想情况下。为什么服务器端代码不打印到登录异常 以log4j为例?这似乎不需要第三方软件,我也不知道tracemycode是如何赚钱的 编辑: 我想我现在明白了,您需要一种读取本地应用程序创建的异常的方法。这有点冒险,因为任何网络通信都可能导致异常,导致无限递归,但只要您从报告中排除这些异常,您就应该可以了 这将很容易构建。您所需要做的就是生成一些helper类,在异常中调用该类
在log4j/logback集成的理想情况下。为什么服务器端代码不打印到登录异常 以log4j为例?这似乎不需要第三方软件,我也不知道tracemycode是如何赚钱的 编辑: 我想我现在明白了,您需要一种读取本地应用程序创建的异常的方法。这有点冒险,因为任何网络通信都可能导致异常,导致无限递归,但只要您从报告中排除这些异常,您就应该可以了 这将很容易构建。您所需要做的就是生成一些helper类,在异常中调用该类以将日志发送到服务器
public class ExceptionReporter {
public static int sendReport(String aData)
try {
byte[] myData = aData.getBytes();
/* Uploading the data */
URL myURL = new URL(CONSTANTS.CentralURL);
HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
myConnection.setDoOutput(true);
myConnection.setUseCaches(false);
myConnection.setDefaultUseCaches(false);
myConnection.setRequestProperty("Content-type", "application/octet-stream");
OutputStream myOutputStream = myConnection.getOutputStream();
myOutputStream.write(myData);
myOutputStream.flush();
myOutputStream.close();
int status = ((HttpURLConnection) myConnection).getResponseCode();
}
catch (Exception e) {
LocalLog.log(e.toString());
}
}
然后在您所有的服务器代码/应用程序代码中,您可以使用
try{
// ...do stuff
}
catch (Exception e){
ExceptionReporter.sendReport(e.getMessage());
}
然后,您的中央服务器可以接收这些httpconnections,并将发送的数据保存到数据库或其他线程安全解决方案。如果需要,您可以使用TraceMyCode,因为它在“帮助”部分清楚地记录了发送崩溃日志所需的端点和数据结构
想知道异常在哪些环境中出现的频率吗?是的,最好将其嵌入到自己的服务器端(基于servlet),但这不是我的观点。让我们想象一下,我们在K个不同的位置有N台服务器,等等。每个服务器上都会出现异常,并在本地进行日志记录。对我们来说,拥有一个单一的错误来源将是一个巨大的优势。