我希望 Scriptella 为每个要 ETL 的原始文件生成一个日志文件,就像 log4j 对 java 应用程序所做的那样。如何使这成为可能?
任何日志记录 API 都可以直接从 ETL 文件调用。实现这一点的最简单方法可能是使用内置 Rhino 支持的脚本驱动程序(JavaScript):
<!DOCTYPE etl SYSTEM "http://scriptella.javaforge.com/dtd/etl.dtd">
<etl>
<connection id="log4j" driver="script"/>
<connection id="jul" driver="script"/>
<script connection-id="jul">
java.util.logging.Logger.getLogger("testLogger").info("This is JUL message");
</script>
<script connection-id="log4j">
//For demo purposes!!!
//Configures log4j to use console for output
//Normally log4j should be configured by using a config file
org.apache.log4j.BasicConfigurator.configure();
</script>
<script connection-id="log4j">
org.apache.log4j.Logger.getLogger("testLoggerName").info("This is LOG4J message");
</script>
</etl>
你可以声明这样的连接
<connection id="log" driver="text" url="D:/tmp/out.log"/>
然后在查询中使用它,如下所示
<query connection-id="dbConnectionIn">
select * from table
<script connection-id="log">
Result $column1, $comun2
</script>
</query>
现在,这会将其记录到 D:/tmp 下的文件中