public List displayLog()

in log/src/main/java/org/apache/karaf/cellar/log/management/internal/CellarLogMBeanImpl.java [54:92]


    public List<String> displayLog(String logger, String nodeId, int entries) {
        List<String> result = new ArrayList<String>();

        String node = null;
        if (nodeId != null && clusterManager.findNodeByIdOrAlias(nodeId) == null) {
            throw new IllegalArgumentException("Node " + nodeId + " doesn't exist");
        }
        if (nodeId != null && clusterManager.findNodeByIdOrAlias(nodeId) != null) {
            node = clusterManager.findNodeByIdOrAlias(nodeId).getId();
        }
        ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
        Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
        try {
            Map<ClusterLogKey, ClusterLogRecord> clusterLog = clusterManager.getMap(LogAppender.LOG_MAP);
            int index = 0;
            for (ClusterLogKey key : clusterLog.keySet()) {
                if (entries == 0 || (entries != 0 && index < entries)) {
                    ClusterLogRecord record = clusterLog.get(key);
                    if (node == null || (node != null && key.getNodeId().equals(node))) {
                        if (logger == null || (logger != null && logger.equals("ALL")) || (logger != null && record.getLoggerName() != null && record.getLoggerName().contains(logger))) {
                            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
                            String message = key.getNodeId() + " | "
                                    + dateFormat.format(new Date(key.getTimeStamp())) + " | "
                                    + record.getLevel() + " | "
                                    + record.getThreadName() + " | "
                                    + record.getLoggerName() + " | "
                                    + record.getMessage();
                            result.add(message);
                            index++;
                        }
                    }
                }
            }
        } finally {
            Thread.currentThread().setContextClassLoader(originalClassLoader);
        }

        return result;
    }