code_junkie

How do I get java logging output to appear on a single line?

Nov 11th, 2011
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. import java.io.PrintWriter;
  2. import java.io.StringWriter;
  3. import java.util.Date;
  4. import java.util.logging.Formatter;
  5. import java.util.logging.LogRecord;
  6.  
  7. public final class LogFormatter extends Formatter {
  8.  
  9. private static final String LINE_SEPARATOR = System.getProperty("line.separator");
  10.  
  11. @Override
  12. public String format(LogRecord record) {
  13. StringBuilder sb = new StringBuilder();
  14.  
  15. sb.append(new Date(record.getMillis()))
  16. .append(" ")
  17. .append(record.getLevel().getLocalizedName())
  18. .append(": ")
  19. .append(formatMessage(record))
  20. .append(LINE_SEPARATOR);
  21.  
  22. if (record.getThrown() != null) {
  23. try {
  24. StringWriter sw = new StringWriter();
  25. PrintWriter pw = new PrintWriter(sw);
  26. record.getThrown().printStackTrace(pw);
  27. pw.close();
  28. sb.append(sw.toString());
  29. } catch (Exception ex) {
  30. // ignore
  31. }
  32. }
  33.  
  34. return sb.toString();
  35. }
  36. }
  37.  
  38. public String format(LogRecord record) {
  39. return new java.util.Date() + " " + record.getLevel() + " " + record.getMessage() + "rn";
  40. }
  41.  
  42. public class SingleLineFormatter extends Formatter {
  43.  
  44. Date dat = new Date();
  45. private final static String format = "{0,date} {0,time}";
  46. private MessageFormat formatter;
  47. private Object args[] = new Object[1];
  48.  
  49. // Line separator string. This is the value of the line.separator
  50. // property at the moment that the SimpleFormatter was created.
  51. //private String lineSeparator = (String) java.security.AccessController.doPrivileged(
  52. // new sun.security.action.GetPropertyAction("line.separator"));
  53. private String lineSeparator = "n";
  54.  
  55. /**
  56. * Format the given LogRecord.
  57. * @param record the log record to be formatted.
  58. * @return a formatted log record
  59. */
  60. public synchronized String format(LogRecord record) {
  61.  
  62. StringBuilder sb = new StringBuilder();
  63.  
  64. // Minimize memory allocations here.
  65. dat.setTime(record.getMillis());
  66. args[0] = dat;
  67.  
  68.  
  69. // Date and time
  70. StringBuffer text = new StringBuffer();
  71. if (formatter == null) {
  72. formatter = new MessageFormat(format);
  73. }
  74. formatter.format(args, text, null);
  75. sb.append(text);
  76. sb.append(" ");
  77.  
  78.  
  79. // Class name
  80. if (record.getSourceClassName() != null) {
  81. sb.append(record.getSourceClassName());
  82. } else {
  83. sb.append(record.getLoggerName());
  84. }
  85.  
  86. // Method name
  87. if (record.getSourceMethodName() != null) {
  88. sb.append(" ");
  89. sb.append(record.getSourceMethodName());
  90. }
  91. sb.append(" - "); // lineSeparator
  92.  
  93.  
  94.  
  95. String message = formatMessage(record);
  96.  
  97. // Level
  98. sb.append(record.getLevel().getLocalizedName());
  99. sb.append(": ");
  100.  
  101. // Indent - the more serious, the more indented.
  102. //sb.append( String.format("% ""s") );
  103. int iOffset = (1000 - record.getLevel().intValue()) / 100;
  104. for( int i = 0; i < iOffset; i++ ){
  105. sb.append(" ");
  106. }
  107.  
  108.  
  109. sb.append(message);
  110. sb.append(lineSeparator);
  111. if (record.getThrown() != null) {
  112. try {
  113. StringWriter sw = new StringWriter();
  114. PrintWriter pw = new PrintWriter(sw);
  115. record.getThrown().printStackTrace(pw);
  116. pw.close();
  117. sb.append(sw.toString());
  118. } catch (Exception ex) {
  119. }
  120. }
  121. return sb.toString();
  122. }
  123. }
Add Comment
Please, Sign In to add comment