@Override @SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") public Message[] getContextStack() { List<String> messages = threadLocalMessagePatterns.get(); if(messages == null) { return NO_MESSAGES; } int count=messages.size(); if(count == 0) { // should never happen clear(); return NO_MESSAGES; } List<String[]> args = threadLocalMessageArguments.get(); Message[] result=new Message[count]; for(int i=0;i<count;i++) { result[i]=new Message(messages.get(i), args.get(i)); } return result; } }
private Message readNdcEntry(XMLStreamReader reader) throws XMLStreamException { int type = reader.getEventType(); if(XMLStreamConstants.START_ELEMENT == type && NDC_ENTRY_NODE.equals(reader.getLocalName())) { reader.nextTag(); Message entry = new Message(); entry.setMessagePattern(StaxUtilities.readSimpleTextNodeIfAvailable(reader, null, MESSAGE_NODE)); List<String> args = readArguments(reader); if(args != null) { entry.setArguments(args.toArray(EMPTY_STRING_ARRAY)); } reader.require(XMLStreamConstants.END_ELEMENT, null, NDC_ENTRY_NODE); reader.nextTag(); return entry; } return null; }
@Test public void arguments() throws Throwable { LoggingEvent event = createMinimalEvent(); String[] arguments = new String[]{"arg1", "arg2"}; event.setMessage(new Message("message", arguments)); check(event); }
@Test public void nullArgument() throws Throwable { LoggingEvent event = createMinimalEvent(); String[] arguments = new String[]{"arg1", null, "arg3"}; event.setMessage(new Message("message", arguments)); check(event); }
if(messageStr != null) result.setMessage(new Message(messageStr));
Message message = new Message(messagePattern, arguments); result.setMessage(message);
Message message = new Message(messagePattern, arguments); result.setMessage(message);