Kettle以文本行的方式输出日志信息,步骤结束时,可以生成下面的一行日志:
2010/06/18 10:36:29 - step name.0 -
Finished processing (I=0,O=0,R=0,W=25,U=0,E=0)
这个日志行里有以下主要内容:
- 日期和时间。
- 步骤名,步骤名的后面有一个点号,点号后面是步骤的拷贝号。
- 日志内容。
4.每个部分之间都使用空格、横线、空格来分割。
作业,转换的日志基本
- 行级日志:打印出Kettle里所有可用的日志信息,包括在一些比较复杂的步骤里的每一行数据。
- 调试日志:也打印出很多日志信息,但没有到每一行数据都打印出来的级别。
- 详细日志:比基本日志多一些日志内容,如多了SQL查询语句和DDL语句等。
- 基本日志:默认的日志级别,只打印出执行到哪个步骤和作业项的日志信息。
- 最小日志:只打印出执行到哪个转换和作业的日志信息。
- 错误日志:只打印出错误日志,如果没有错误也不打印日志。
- 无日志:不打印任何日志,即使有错误也不打印。
日志架构
实际上中心缓存里保存了以下内容:
- 日期和时间:让Spoon在日志窗口用蓝色显示日志的日期和时间。
- 日志级别:让Spoon在日志窗口用红色显示错误行。
- 递增的唯一编号:Kettle对不同日志窗口或者远程日志抽取分配的递增的编号。
- 日志文本内容:实际的日志文本内容。
- 日志通道ID:这个ID是随机生成的唯一字符串,用来唯一标识生成日志行的Kettle组件。
把日志保存在内存里是导致内存溢出的一个主要的原因。当你执行一个作业或转换而且日志级别设置的比较高时,在执行过程中就会产生大量日志。如果你要求Kettle把这些日志信息存储在日志表里,那么这些日志信息就会暂时保存在内存里,最后就会发生内存溢出问题。
设置缓存大小
限制日志数量通常想到的第一个方法就是设置缓存大小。可以在Spoon的“选项”对话框里设置这个参数。在对话框里的“日志窗口的最大行数”输入框里设置。要注意该选项只在Spoon里有效
另一个选择就是设置KETTLE_MAX_LOG_SIZE_IN_LINES环境变量。可以在kettle.properties文件里设置这个环境变量。
最后,也可以在Carte的配置文件中设置这个参数。例如在服务器的配置XML文件中加入下面的配置行,将中心日志缓存的大小设置为10000行:
<!-- Prevent out of memory by only keeping 10,000 rows in the central log buffer -->
<max_log_lines>10000</max_log_lines>
网友评论