[jira] [Updated] (NIFI-4277) StandardLogRepository does not log exceptions

2017-08-09 Thread Pierre Villard (JIRA)

 [ 
https://issues.apache.org/jira/browse/NIFI-4277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre Villard updated NIFI-4277:
-
Status: Patch Available  (was: Open)

> StandardLogRepository does not log exceptions
> -
>
> Key: NIFI-4277
> URL: https://issues.apache.org/jira/browse/NIFI-4277
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.3.0
>Reporter: Pierre Villard
>Assignee: Pierre Villard
> Attachments: Screen Shot 2017-08-08 at 2.48.33 PM.png
>
>
> When logging a message, it is logged with the SLF4J logger and also stored in 
> the standard log repository (for the bulletins). However if the array of 
> objects contains the exception (and not the message of the exception), this 
> exception won't be displayed in the bulletin message.
> That's because of:
> {code:title=StandardLogRepository.java|borderStyle=solid}
> @Override
> public void addLogMessage(final LogLevel level, final String format, 
> final Object[] params) {
> final String formattedMessage = MessageFormatter.arrayFormat(format, 
> params).getMessage();
> addLogMessage(level, formattedMessage);
> }
> {code}
> If the params object contains a Throwable object, it'll be removed from the 
> array in the {{MessageFormatter}}:
> {code:title=MessageFormatter.java|borderStyle=solid}
> final public static FormattingTuple arrayFormat(final String 
> messagePattern, final Object[] argArray) {
> Throwable throwableCandidate = getThrowableCandidate(argArray);
> Object[] args = argArray;
> if (throwableCandidate != null) {
> args = trimmedCopy(argArray);
> }
> return arrayFormat(messagePattern, args, throwableCandidate);
> }
> {code}
> Easy solution would be to change:
> {noformat}
> logger.debug("Failed to validate {} against schema due to {}", new 
> Object[]{flowFile, e});
> {noformat}
> into:
> {noformat}
> logger.debug("Failed to validate {} against schema due to {}", new 
> Object[]{flowFile, e.getLocalizedMessage()});
> {noformat}
> However this pattern can be found in quite a large number of places... And 
> it'd be certainly better to provide a permanent solution supporting the 
> existing pattern. Suggestion is to modify the method in 
> {{StandardLogRepository}} to go through all the items of the array and for 
> each Throwable object, replace it by the localized message.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (NIFI-4277) StandardLogRepository does not log exceptions

2017-08-09 Thread Pierre Villard (JIRA)

 [ 
https://issues.apache.org/jira/browse/NIFI-4277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre Villard updated NIFI-4277:
-
Description: 
When logging a message, it is logged with the SLF4J logger and also stored in 
the standard log repository (for the bulletins). However if the array of 
objects contains the exception (and not the message of the exception), this 
exception won't be displayed in the bulletin message.

That's because of:

{code:title=StandardLogRepository.java|borderStyle=solid}
@Override
public void addLogMessage(final LogLevel level, final String format, final 
Object[] params) {
final String formattedMessage = MessageFormatter.arrayFormat(format, 
params).getMessage();
addLogMessage(level, formattedMessage);
}
{code}

If the params object contains a Throwable object, it'll be removed from the 
array in the {{MessageFormatter}}:


{code:title=MessageFormatter.java|borderStyle=solid}
final public static FormattingTuple arrayFormat(final String 
messagePattern, final Object[] argArray) {
Throwable throwableCandidate = getThrowableCandidate(argArray);
Object[] args = argArray;
if (throwableCandidate != null) {
args = trimmedCopy(argArray);
}
return arrayFormat(messagePattern, args, throwableCandidate);
}
{code}

Easy solution would be to change:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e});
{noformat}

into:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e.getLocalizedMessage()});
{noformat}

However this pattern can be found in quite a large number of places... And it'd 
be certainly better to provide a permanent solution supporting the existing 
pattern. Suggestion is to modify the method in {{StandardLogRepository}} to go 
through all the items of the array and for each Throwable object, replace it by 
the localized message.

  was:
When logging a message, it is logged with the SLF4J logger and also stored in 
the standard log repository (for the bulletins). However if the array of 
objects contains the exception (and not the message of the exception), this 
exception won't be displayed in the bulletin message.

!attachment-name.jpg|thumbnail!

That's because of:

{code:title=StandardLogRepository.java|borderStyle=solid}
@Override
public void addLogMessage(final LogLevel level, final String format, final 
Object[] params) {
final String formattedMessage = MessageFormatter.arrayFormat(format, 
params).getMessage();
addLogMessage(level, formattedMessage);
}
{code}

If the params object contains a Throwable object, it'll be removed from the 
array in the {{MessageFormatter}}:


{code:title=MessageFormatter.java|borderStyle=solid}
final public static FormattingTuple arrayFormat(final String 
messagePattern, final Object[] argArray) {
Throwable throwableCandidate = getThrowableCandidate(argArray);
Object[] args = argArray;
if (throwableCandidate != null) {
args = trimmedCopy(argArray);
}
return arrayFormat(messagePattern, args, throwableCandidate);
}
{code}

Easy solution would be to change:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e});
{noformat}

into:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e.getLocalizedMessage()});
{noformat}

However this pattern can be found in quite a large number of places... And it'd 
be certainly better to provide a permanent solution supporting the existing 
pattern. Suggestion is to modify the method in {{StandardLogRepository}} to go 
through all the items of the array and for each Throwable object, replace it by 
the localized message.


> StandardLogRepository does not log exceptions
> -
>
> Key: NIFI-4277
> URL: https://issues.apache.org/jira/browse/NIFI-4277
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.3.0
>Reporter: Pierre Villard
>Assignee: Pierre Villard
> Attachments: Screen Shot 2017-08-08 at 2.48.33 PM.png
>
>
> When logging a message, it is logged with the SLF4J logger and also stored in 
> the standard log repository (for the bulletins). However if the array of 
> objects contains the exception (and not the message of the exception), this 
> exception won't be displayed in the bulletin message.
> That's because of:
> {code:title=StandardLogRepository.java|borderStyle=solid}
> @Override
> public void addLogMessage(final LogLevel level, final String format, 
> final Object[] params) {
> final String formattedMessage = MessageFormatter.arrayFormat(format, 
> params).getMessage();
>   

[jira] [Updated] (NIFI-4277) StandardLogRepository does not log exceptions

2017-08-09 Thread Pierre Villard (JIRA)

 [ 
https://issues.apache.org/jira/browse/NIFI-4277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre Villard updated NIFI-4277:
-
Description: 
When logging a message, it is logged with the SLF4J logger and also stored in 
the standard log repository (for the bulletins). However if the array of 
objects contains the exception (and not the message of the exception), this 
exception won't be displayed in the bulletin message.

!attachment-name.jpg|thumbnail!

That's because of:

{code:title=StandardLogRepository.java|borderStyle=solid}
@Override
public void addLogMessage(final LogLevel level, final String format, final 
Object[] params) {
final String formattedMessage = MessageFormatter.arrayFormat(format, 
params).getMessage();
addLogMessage(level, formattedMessage);
}
{code}

If the params object contains a Throwable object, it'll be removed from the 
array in the {{MessageFormatter}}:


{code:title=MessageFormatter.java|borderStyle=solid}
final public static FormattingTuple arrayFormat(final String 
messagePattern, final Object[] argArray) {
Throwable throwableCandidate = getThrowableCandidate(argArray);
Object[] args = argArray;
if (throwableCandidate != null) {
args = trimmedCopy(argArray);
}
return arrayFormat(messagePattern, args, throwableCandidate);
}
{code}

Easy solution would be to change:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e});
{noformat}

into:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e.getLocalizedMessage()});
{noformat}

However this pattern can be found in quite a large number of places... And it'd 
be certainly better to provide a permanent solution supporting the existing 
pattern. Suggestion is to modify the method in {{StandardLogRepository}} to go 
through all the items of the array and for each Throwable object, replace it by 
the localized message.

  was:
When logging a message, it is logged with the SLF4J logger and also stored in 
the standard log repository (for the bulletins). However if the array of 
objects contains the exception (and not the message of the exception), this 
exception won't be displayed in the bulletin message.

!Screen Shot 2017-08-08 at 2.48.33 PM.png|thumbnail!

That's because of:

{code:title=StandardLogRepository.java|borderStyle=solid}
@Override
public void addLogMessage(final LogLevel level, final String format, final 
Object[] params) {
final String formattedMessage = MessageFormatter.arrayFormat(format, 
params).getMessage();
addLogMessage(level, formattedMessage);
}
{code}

If the params object contains a Throwable object, it'll be removed from the 
array in the {{MessageFormatter}}:


{code:title=MessageFormatter.java|borderStyle=solid}
final public static FormattingTuple arrayFormat(final String 
messagePattern, final Object[] argArray) {
Throwable throwableCandidate = getThrowableCandidate(argArray);
Object[] args = argArray;
if (throwableCandidate != null) {
args = trimmedCopy(argArray);
}
return arrayFormat(messagePattern, args, throwableCandidate);
}
{code}

Easy solution would be to change:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e});
{noformat}

into:

{noformat}
logger.debug("Failed to validate {} against schema due to {}", new 
Object[]{flowFile, e.getLocalizedMessage()});
{noformat}

However this pattern can be found in quite a large number of places... And it'd 
be certainly better to provide a permanent solution supporting the existing 
pattern. Suggestion is to modify the method in {{StandardLogRepository}} to go 
through all the items of the array and for each Throwable object, replace it by 
the localized message.


> StandardLogRepository does not log exceptions
> -
>
> Key: NIFI-4277
> URL: https://issues.apache.org/jira/browse/NIFI-4277
> Project: Apache NiFi
>  Issue Type: Bug
>  Components: Core Framework
>Affects Versions: 1.3.0
>Reporter: Pierre Villard
>Assignee: Pierre Villard
> Attachments: Screen Shot 2017-08-08 at 2.48.33 PM.png
>
>
> When logging a message, it is logged with the SLF4J logger and also stored in 
> the standard log repository (for the bulletins). However if the array of 
> objects contains the exception (and not the message of the exception), this 
> exception won't be displayed in the bulletin message.
> !attachment-name.jpg|thumbnail!
> That's because of:
> {code:title=StandardLogRepository.java|borderStyle=solid}
> @Override
> public void addLogMessage(final LogLevel level, final String format, 
> final Object[] params) {
> final