在
Java应用程序中哪些系统信息很有用 – 特别是在跟踪异常或其他问题时?
我正在考虑有关异常,java / os信息,内存/对象消耗,io信息,环境/ enchodings等的详细信息.
解决方法
除了显而易见的 – 异常堆栈跟踪 – 您可以获得的信息越多越好.因此,您应该获得所有系统属性以及环境变量.此外,如果您的应用程序有一些设置,请获取所有值.当然你应该将所有这些信息都放到你的日志文件中,为了简单起见我使用了System.out她:
System.out.println("----Java System Properties----"); System.getProperties().list(System.out); System.out.println("----System Environment Variables----"); Map<String,String> env = System.getenv(); Set<String> keys = env.keySet(); for (String key : keys) { System.out.println(key + "=" + env.get(key)); }
对于大多数情况,这将是“太多”信息,但对于大多数情况,堆栈跟踪就足够了.一旦你遇到一个棘手的问题,你会很高兴你拥有所有“额外”的信息