private List<WritableMessage> getWritableMessages(ApplicationAwareMessage applicationAwareMessage, LogLevel logLevel) {
        List<WritableMessage> writableMessages = new ArrayList<>();
        for (SupportedLogMedium supportedLogMedium: applicationAwareMessage.getMediums()) {
            writableMessages.add(new WritableMessage(applicationAwareMessage, logLevel, supportedLogMedium));
        }

        return writableMessages;
    }
Applications will talk to this logger instance to publish message to the system
src/com/lld/multithreadedlogging/logger/impl/ApplicationAwareLoggerImpl.java