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