我想为NiFi中的每个处理器制作日志文件。我使用splitText
来分割日志文件,然后在它之后处理它我有一个日志消息分布在5个文件中。我想保留这些数据并将其写入每个处理器的一个日志文件中(例如,我使用此表达式来获取executioncript处理器${regex:toLower():contains('executescript')}
)。
是否有可能获得我使用过的流文件数据,但处理器似乎反应不好:
def flowFile1 = session.create();
def flowFile=session.get();
while(flowFile != null){
flowFile1 = session.write(flowFile, {outputStream -> def builder = new groovy.json.JsonBuilder(flowFile)
outputStream.write(builder.toPrettyString().getBytes(StandardCharsets.UTF_8)) } as OutputStreamCallback)
}
flowFile1 = session.putAttribute(flowFile,'filename','ExecuteScriptLog')
session.remove(flowFile);
session.transfer(flowFile1, REL_SUCCESS)
我有WorkFlow ike thi和我想获取连接名称,例如' executioncrip&t;并使用此名称生成流文件,并输入所有流程文件数据,这些数据放在此' executioncript'排队并将其写入我创建的一个文件中(在本例中为' executioncript')
答案 0 :(得分:1)
您可以通过NIFI_HOME/conf/logback.xml
文件管理的日志记录配置。
您可以在此处定义日志记录文件(appenders)以及应记录哪些消息。
归还手册:https://logback.qos.ch/manual/index.html
每个处理器都有一个您可以在屏幕上看到的类名(例如:org.apache.nifi.processors.attributes.UpdateAttribute
) -
您需要此信息在logback.xml中配置logger并将其指向appender(文件)
您也可以在logback.xml中为每个appender定义过滤 这样只有与regexp匹配的消息才会被附加到其中。