Groovy 在NiFi中生成日志文件

Groovy 在NiFi中生成日志文件,groovy,apache-nifi,Groovy,Apache Nifi,我想为NiFi中的每个处理器创建日志文件。我使用splitText来分割日志文件,然后在处理它们之后,我将一条日志消息分发到5个文件中。我想保留这些数据并将其写入每个处理器的一个日志文件中,例如,我使用这个表达式来获取executescript处理器${regex:toLower:contains'executescript'} 如何将这些日志写入每个处理器的一个日志文件中? 我应该使用任何本机NiFi处理器还是使用Groovy代码? 是否有可能获取我使用过的flowfile数据,但处理器的响应

我想为NiFi中的每个处理器创建日志文件。我使用splitText来分割日志文件,然后在处理它们之后,我将一条日志消息分发到5个文件中。我想保留这些数据并将其写入每个处理器的一个日志文件中,例如,我使用这个表达式来获取executescript处理器${regex:toLower:contains'executescript'}

如何将这些日志写入每个处理器的一个日志文件中? 我应该使用任何本机NiFi处理器还是使用Groovy代码? 是否有可能获取我使用过的flowfile数据,但处理器的响应似乎不好:

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(Standar‌​dCharsets.UTF_8)) } as OutputStreamCallback) 
}

flowFile1 = session.putAttribute(flowFile,'filename','ExecuteScriptLog')
session.remove(flowFile);
session.transfer(flowFile1, REL_SUCCESS)
我有工作流ike thi和我wnat来获取连接名称,例如'executescrip',并使用此名称生成流文件,输入所有流文件数据,这些数据放置在这个'executescript'队列中,并将其写入我创建的一个文件中(在本例中为'executescript'

可以通过NIFI_HOME/conf/logback.xml文件管理的日志配置

您可以在这里定义日志文件、附加器以及应该记录哪些消息

logback手册:

每个处理器都有一个类名,您可以在屏幕上看到,例如:org.apache.nifi.processors.attributes.UpdateAttribute- 您需要此信息来在logback.xml中配置记录器并将其定向到appender文件

还可以在logback.xml中为每个appender定义筛选
这样,只有与regexp匹配的消息才会附加到其中

是否可以获取连接名,然后根据它命名flowfile?我之所以这么做,是因为我使用routeonattribute,并用prosesor名称命名了Connection。我还想知道是否有可能获取flowilfe数据并将其放入JSONC。我可以为每个处理器或类型创建一个flowfie,例如,创建名为invokehttp的flowfile,并在这里写入所有inovkehttp日志吗?我的意思是nifi-app日志是否可以在一个由groovy代码编写的executescript代码中完成?