append(sb, 1, "date", date); append(sb, 1, "millis", time); append(sb, 1, "sequence", r.getSequenceNumber()); if (r.getLoggerName() != null) { append(sb, 1, "logger", r.getLoggerName()); append(sb, 1, "level", r.getLevel().getName()); if (r.getSourceClassName() != null) { append(sb, 1, "class", r.getSourceClassName()); append(sb, 1, "method", r.getSourceMethodName()); append(sb, 1, "thread", r.getThreadID()); formatMessages(r, sb); Object[] params = r.getParameters(); if (params != null) { for (Object element : params) { append(sb, 1, "param", element); formatThrowable(r, sb); sb.append("</record>").append(nl); return sb.toString();
private void formatThrowable(LogRecord r, StringBuilder sb) { Throwable t; if ((t = r.getThrown()) != null) { String nl = System.lineSeparator(); sb.append(indent).append("<exception>").append(nl); append(sb, 2, "message", t.toString()); // format throwable's stack trace StackTraceElement[] elements = t.getStackTrace(); for (StackTraceElement e : elements) { sb.append(indent).append(indent).append("<frame>").append(nl); append(sb, 3, "class", e.getClassName()); append(sb, 3, "method", e.getMethodName()); append(sb, 3, "line", e.getLineNumber()); sb.append(indent).append(indent).append("</frame>").append(nl); } sb.append(indent).append("</exception>").append(nl); } }
/** Finds the right InputGesture for given LogRecord. * @param rec the record * @return the gesture that initated the record or null if unknown */ public static InputGesture valueOf(LogRecord rec) { if ("UI_ACTION_BUTTON_PRESS".equals(rec.getMessage())) { String fullMsg = F.format(rec); if (fullMsg.indexOf("Actions$Menu") >= 0) { return MENU; } if (fullMsg.indexOf("Actions$Toolbar") >= 0) { return TOOLBAR; } } if ("UI_ACTION_KEY_PRESS".equals(rec.getMessage())) { return KEYBOARD; } return null; } }
Formatter formatter = new XMLFormatter(); Vehicle vehicle = new Car(formatter); vehicle.applyFormat(); formatter = new XMLFormatter(); vehicle = new Truck(formatter); vehicle.applyFormat(); formatter = new POJOFormatter(); vehicle = new Truck(formatter); vehicle.applyFormat();
private void formatMessages(LogRecord r, StringBuilder sb) { // get localized message if has, but don't call Formatter.formatMessage // to parse pattern string ResourceBundle rb = r.getResourceBundle(); String pattern = r.getMessage(); if (rb != null && pattern != null) { String message; try { message = rb.getString(pattern); } catch (Exception e) { message = null; } if (message == null) { message = pattern; append(sb, 1, "message", message); } else { append(sb, 1, "message", message); append(sb, 1, "key", pattern); append(sb, 1, "catalog", r.getResourceBundleName()); } } else if (pattern != null) { append(sb, 1, "message", pattern); } else { sb.append(indent).append("<message/>"); } }
return super.format(record0); } else { EclipseLinkLogRecord record = (EclipseLinkLogRecord)record0;
public class FormatterFactory { public static Formatter getFormatter(String type) { // maybe use enum to decide if (type.equals("json") { return new JSonFormatter(); } else if (type.equals("xml")) { return new XMLFormatter(); } return new DefaultFormatter(); // returns toString for example } }
@Override public String format(LogRecord r) { // call a method of LogRecord to ensure not null long time = r.getMillis(); // format to date String date = MessageFormat.format("{0, date} {0, time}", new Object[]{new Date(time)}); String nl = System.lineSeparator(); StringBuilder sb = new StringBuilder(); sb.append("<record>").append(nl); append(sb, 1, "date", date); append(sb, 1, "millis", time); append(sb, 1, "sequence", r.getSequenceNumber()); if (r.getLoggerName() != null) append(sb, 1, "logger", r.getLoggerName()); append(sb, 1, "level", r.getLevel().getName()); if (r.getSourceClassName() != null) append(sb, 1, "class", r.getSourceClassName()); if (r.getSourceMethodName() != null) append(sb, 1, "method", r.getSourceMethodName()); append(sb, 1, "thread", r.getThreadID()); formatMessages(r, sb); Object[] params = r.getParameters(); if (params != null) for (Object element : params) append(sb, 1, "param", element); formatThrowable(r, sb); sb.append("</record>").append(nl); return sb.toString(); }
private void formatThrowable(LogRecord r, StringBuilder sb) { Throwable t; if ((t = r.getThrown()) != null) { String nl = System.lineSeparator(); sb.append(indent).append("<exception>").append(nl); append(sb, 2, "message", t.toString()); // format throwable's stack trace StackTraceElement[] elements = t.getStackTrace(); for (StackTraceElement e : elements) { sb.append(indent).append(indent).append("<frame>").append(nl); append(sb, 3, "class", e.getClassName()); append(sb, 3, "method", e.getMethodName()); append(sb, 3, "line", e.getLineNumber()); sb.append(indent).append(indent).append("</frame>").append(nl); } sb.append(indent).append("</exception>").append(nl); } }
return super.format(record0); } else { EclipseLinkLogRecord record = (EclipseLinkLogRecord)record0;
Logger logger = Logger.getLogger("concrete.log"); Handler handle = new SocketHandler("localhost", 8080); LogRecord logRec = new LogRecord(Level.INFO, "Log will be recorded"); handle.publish(logRec); handle.setFormatter(new XMLFormatter()); logger.addHandler(handle); logger.info("socket handler info message");
append(sb, 1, "date", date); append(sb, 1, "millis", time); append(sb, 1, "sequence", r.getSequenceNumber()); if (r.getLoggerName() != null) { append(sb, 1, "logger", r.getLoggerName()); append(sb, 1, "level", r.getLevel().getName()); if (r.getSourceClassName() != null) { append(sb, 1, "class", r.getSourceClassName()); append(sb, 1, "method", r.getSourceMethodName()); append(sb, 1, "thread", r.getThreadID()); formatMessages(r, sb); Object[] params = r.getParameters(); if (params != null) { for (Object element : params) { append(sb, 1, "param", element); formatThrowable(r, sb); sb.append("</record>").append(nl); return sb.toString();
private void formatThrowable(LogRecord r, StringBuilder sb) { Throwable t; if ((t = r.getThrown()) != null) { String nl = System.lineSeparator(); sb.append(indent).append("<exception>").append(nl); append(sb, 2, "message", t.toString()); // format throwable's stack trace StackTraceElement[] elements = t.getStackTrace(); for (StackTraceElement e : elements) { sb.append(indent).append(indent).append("<frame>").append(nl); append(sb, 3, "class", e.getClassName()); append(sb, 3, "method", e.getMethodName()); append(sb, 3, "line", e.getLineNumber()); sb.append(indent).append(indent).append("</frame>").append(nl); } sb.append(indent).append("</exception>").append(nl); } }
return super.format(record0); } else { EclipseLinkLogRecord record = (EclipseLinkLogRecord)record0;
); Level defaultLevel = Level.INFO; logHandler.setFormatter(new XMLFormatter()); logHandler.setLevel(java.util.logging.Level.FINE); for (Handler h : rootLogger.getHandlers()) {
append(sb, 1, "date", date); append(sb, 1, "millis", time); append(sb, 1, "sequence", r.getSequenceNumber()); if (r.getLoggerName() != null) { append(sb, 1, "logger", r.getLoggerName()); append(sb, 1, "level", r.getLevel().getName()); if (r.getSourceClassName() != null) { append(sb, 1, "class", r.getSourceClassName()); append(sb, 1, "method", r.getSourceMethodName()); append(sb, 1, "thread", r.getThreadID()); formatMessages(r, sb); Object[] params = r.getParameters(); if (params != null) { for (Object element : params) { append(sb, 1, "param", element); formatThrowable(r, sb); sb.append("</record>").append(nl); return sb.toString();
private void formatThrowable(LogRecord r, StringBuilder sb) { Throwable t; if ((t = r.getThrown()) != null) { String nl = System.lineSeparator(); sb.append(indent).append("<exception>").append(nl); append(sb, 2, "message", t.toString()); // format throwable's stack trace StackTraceElement[] elements = t.getStackTrace(); for (StackTraceElement e : elements) { sb.append(indent).append(indent).append("<frame>").append(nl); append(sb, 3, "class", e.getClassName()); append(sb, 3, "method", e.getMethodName()); append(sb, 3, "line", e.getLineNumber()); sb.append(indent).append(indent).append("</frame>").append(nl); } sb.append(indent).append("</exception>").append(nl); } }
return super.format(record0); } else { TopLinkLogRecord record = (TopLinkLogRecord)record0;
f.setFormatter(new XMLFormatter()); return f;
append(sb, 1, "date", date); append(sb, 1, "millis", time); append(sb, 1, "sequence", r.getSequenceNumber()); if (r.getLoggerName() != null) { append(sb, 1, "logger", r.getLoggerName()); append(sb, 1, "level", r.getLevel().getName()); if (r.getSourceClassName() != null) { append(sb, 1, "class", r.getSourceClassName()); append(sb, 1, "method", r.getSourceMethodName()); append(sb, 1, "thread", r.getThreadID()); formatMessages(r, sb); Object[] params = r.getParameters(); if (params != null) { for (Object element : params) { append(sb, 1, "param", element); formatThrowable(r, sb); sb.append("</record>").append(nl); return sb.toString();