【发布时间】:2018-11-28 09:24:30
【问题描述】:
我在 DB2 10.5 中安装了一个 JAVA UDF,一切正常。 但是我有一些捕获块,我想在其中记录一些信息以及堆栈跟踪。问题是我如何记录它们以及这些信息将打印在哪个 db2 日志文件中。
我尝试使用 System.out.println 并查看 db2diag 日志文件,但那里没有打印任何内容。
【问题讨论】:
标签: java db2 user-defined-functions
我在 DB2 10.5 中安装了一个 JAVA UDF,一切正常。 但是我有一些捕获块,我想在其中记录一些信息以及堆栈跟踪。问题是我如何记录它们以及这些信息将打印在哪个 db2 日志文件中。
我尝试使用 System.out.println 并查看 db2diag 日志文件,但那里没有打印任何内容。
【问题讨论】:
标签: java db2 user-defined-functions
在 Db2-LUW 的 java 例程中,System.out.println 的输出将永远不会出现在 Db2 诊断文件中,如果您明智,您不应该强制这样做。
处理它的方法不止一种。
一种方法是让您的例程在调用 System.out.println 之前重定向标准输出。 示例
System.setOut(new PrintStream(new FileOutputStream("java_routine_log.txt")));
在上面的示例中,文件名是不合格的,因此默认情况下它将出现在实例诊断目录中(默认情况下 ~${DB2INSTANCE}/sqllib/db2dump )。
另一种方法是使用可配置的日志记录框架,让您可以控制日志记录位置和其他详细信息以进行跟踪。
还有其他方式。
【讨论】: