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;
}