NIFI-9731: Updated to use a shorter, simpler output format for FlowFiles when creating bulletins

NIFI-9731: Only simplify flowfile arg in bulletin after extracting the flowfile uuid
Signed-off-by: Matthew Burgess <mattyb149@apache.org>

This closes #5808
This commit is contained in:
Mark Payne 2022-02-25 14:15:18 -05:00 committed by Matthew Burgess
parent 589a1c24d1
commit 649e2d2556
No known key found for this signature in database
GPG Key ID: 05D3DEB8126DAD24
1 changed files with 15 additions and 6 deletions

View File

@ -68,8 +68,8 @@ public class StandardLogRepository implements LogRepository {
@Override
public void addLogMessage(final LogLevel level, final String format, final Object[] params) {
replaceThrowablesWithMessage(params);
final Optional<String> flowFileUuid = getFirstFlowFileUuidFromObjects(params);
simplifyArgs(params);
final String formattedMessage = MessageFormatter.arrayFormat(format, params).getMessage();
final LogMessage logMessage = new LogMessage.Builder(System.currentTimeMillis(), level)
.message(formattedMessage)
@ -80,8 +80,8 @@ public class StandardLogRepository implements LogRepository {
@Override
public void addLogMessage(final LogLevel level, final String format, final Object[] params, final Throwable t) {
replaceThrowablesWithMessage(params);
final Optional<String> flowFileUuid = getFirstFlowFileUuidFromObjects(params);
simplifyArgs(params);
final String formattedMessage = MessageFormatter.arrayFormat(format, params, t).getMessage();
final LogMessage logMessage = new LogMessage.Builder(System.currentTimeMillis(), level)
.message(formattedMessage)
@ -105,14 +105,23 @@ public class StandardLogRepository implements LogRepository {
return Optional.ofNullable(flowFileFound).map(ff -> ff.getAttribute(CoreAttributes.UUID.key()));
}
private void replaceThrowablesWithMessage(final Object[] params) {
private void simplifyArgs(final Object[] params) {
for (int i = 0; i < params.length; i++) {
if (params[i] instanceof Throwable) {
params[i] = ((Throwable) params[i]).getLocalizedMessage();
}
params[i] = simplifyArg(params[i]);
}
}
private Object simplifyArg(final Object param) {
if (param instanceof Throwable) {
return ((Throwable) param).getLocalizedMessage();
} else if (param instanceof FlowFile) {
final FlowFile flowFile = (FlowFile) param;
return "FlowFile[filename=" + flowFile.getAttribute(CoreAttributes.FILENAME.key()) + "]";
}
return param;
}
@Override
public void setObservationLevel(String observerIdentifier, LogLevel level) {
writeLock.lock();