--- CircuitBreaker/src/dk/thoerup/circuitbreaker/web/ViewCircuitBreaker.java 2010/05/03 10:10:36 698 +++ CircuitBreaker/src/dk/thoerup/circuitbreaker/web/ViewCircuitBreaker.java 2011/04/15 10:27:04 1292 @@ -1,11 +1,13 @@ package dk.thoerup.circuitbreaker.web; import java.util.Date; +import java.util.LinkedList; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dk.thoerup.circuitbreaker.AccountingCircuitBreaker; +import dk.thoerup.circuitbreaker.LoggingCircuitBreaker; import dk.thoerup.circuitbreaker.CircuitBreaker; import dk.thoerup.circuitbreaker.CircuitBreakerManager; @@ -45,7 +47,7 @@ return sb.toString(); } - public String formatDate(long date) { + public static String formatDate(long date) { if (date == 0L) { return "-"; } else { @@ -82,15 +84,34 @@ AccountingCircuitBreaker acb = (AccountingCircuitBreaker) breaker; sb.append("Accounting\n"); sb.append("Trip count").append( acb.getTripCount() ).append("\n"); + sb.append("Re-trip count").append( acb.getRetripCount() ).append("\n"); sb.append("Block count").append( acb.getBlockCount() ).append("\n"); sb.append("Total failure count").append( acb.getTotalFailureCount() ).append("\n"); sb.append("Total Call count").append( acb.getTotalCallCount() ).append("\n"); sb.append("Last failure").append( formatDate(acb.getLastFailure()) ).append("\n"); sb.append("Last trip").append( formatDate(acb.getLastTrip()) ).append("\n"); + sb.append("Last re-trip").append( formatDate(acb.getLastRetrip()) ).append("\n"); sb.append("Last reset").append( formatDate(acb.getLastReset()) ).append("\n"); sb.append("Last resetCounters").append( formatDate(acb.getLastResetCounters()) ).append("\n"); } + + if (breaker instanceof LoggingCircuitBreaker) { + LoggingCircuitBreaker lcb = (LoggingCircuitBreaker) breaker; + + LinkedList list = lcb.getLog(); + String headerLink = String.format("Logging", req.getRequestURI(), breaker.getName() ); + + sb.append("").append(headerLink).append("\n"); + + int max = list.size() > 10 ? 10 : list.size(); + for (int i=0; i"); + sb.append( formatDate(entry.time) ).append(" : ").append(entry.event); + sb.append(""); + } + } sb.append("\n"); sb.append("Current time: ").append( new Date().toString() ).append("

\n"); @@ -102,6 +123,9 @@ if (breaker instanceof AccountingCircuitBreaker ) { sb.append( actionBuilder(uri, "resetCounters", breaker.getName())).append("
\n"); } + if (breaker instanceof LoggingCircuitBreaker ) { + sb.append( actionBuilder(uri, "clearLog", breaker.getName())).append("
\n"); + } } else { sb.append("the CircuitBreakers can only be viewed"); }