1 package com.protomatter.syslog; 2 3 52 53 import java.io.PrintWriter ; 54 import java.util.*; 55 import java.text.*; 56 import java.net.*; 57 import java.io.*; 58 59 import com.protomatter.util.*; 60 61 66 public class SyslogHTMLMailFormatter 67 extends SimpleSyslogTextFormatter 68 { 69 private static char[] DEBUG = "DEBUG".toCharArray(); 70 private static char[] INFO = "INFO".toCharArray(); 71 private static char[] WARNING = "WARNING".toCharArray(); 72 private static char[] ERROR = "ERROR".toCharArray(); 73 private static char[] FATAL = "FATAL".toCharArray(); 74 private static char[] UNKNOWN_LEVEL = "????".toCharArray(); 75 76 79 public SyslogHTMLMailFormatter() 80 { 81 super(); 82 setDateFormat("MM/dd/yyyy HH:mm:ss"); 83 } 84 85 114 public String formatLogEntry(SyslogMessage message) 115 { 116 StringBuffer b = new StringBuffer (256); 117 118 b.append("<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0>\n"); 119 120 b.append("<TR><TD>"); 121 b.append(Syslog.getResourceString(MessageConstants.HTML_DATE_MESSAGE)); 122 b.append("</TD><TD><TT>"); 123 b.append(formatDate(message.time)); 124 b.append("</TT></TD></TR>\n"); 125 126 b.append("<TR><TD>"); 127 b.append(Syslog.getResourceString(MessageConstants.HTML_SEVERITY_MESSAGE)); 128 b.append("</TD><TD><TT><B>"); 129 b.append(getStringForLevel(message.level)); 130 b.append("</B></TT></TD></TR>\n"); 131 132 if (getShowChannel()) 133 { 134 b.append("<TR><TD>"); 135 b.append(Syslog.getResourceString(MessageConstants.HTML_CHANNEL_MESSAGE)); 136 b.append("</TD><TD><TT>"); 137 if (message.channel.equals(Syslog.ALL_CHANNEL)) 138 b.append("ALL_CHANNEL"); 139 else if (message.channel.equals(Syslog.DEFAULT_CHANNEL)) 140 b.append("DEFAULT_CHANNEL"); 141 else 142 b.append(message.channel); 143 b.append("</TT></TD></TR>\n"); 144 } 145 146 if (getShowHostName()) 147 { 148 b.append("<TR><TD>"); 149 b.append(Syslog.getResourceString(MessageConstants.HTML_HOSTNAME_MESSAGE)); 150 b.append("</TD><TD><TT>"); 151 b.append(getHostname(message.host)); 152 b.append("</TT></TD></TR>\n"); 153 } 154 155 if (getShowThreadName()) 156 { 157 b.append("<TR><TD>"); 158 b.append(Syslog.getResourceString(MessageConstants.HTML_THREAD_MESSAGE)); 159 b.append("</TD><TD><TT>"); 160 b.append(message.threadName); 161 b.append("</TT></TD></TR>\n"); 162 } 163 b.append("<TR><TD>"); 164 b.append(Syslog.getResourceString(MessageConstants.HTML_LOGGER_MESSAGE)); 165 b.append("</TD><TD><TT>"); 166 formatLoggerClassName(b, message); 167 b.append("</TT></TD></TR>\n"); 169 b.append("</TABLE>\n"); 170 171 b.append("<DL>\n"); 172 if (message.msg != null) 173 { 174 b.append("<DT>"); 175 b.append(Syslog.getResourceString(MessageConstants.HTML_MESSAGE_MESSAGE)); 176 b.append("<TT> "); 177 b.append(message.msg); 178 b.append("</TT></DT>\n"); 179 } 180 if (message.detail != null) 181 { 182 b.append("<DD><PRE>\n"); 183 formatMessageDetail(b, message); 184 b.append("</PRE></DD>\n"); 185 } 186 b.append("</DL>\n"); 187 return b.toString(); 188 } 189 190 protected char[] getStringForLevel(int level) 191 { 192 switch (level) 193 { 194 case Syslog.DEBUG: return DEBUG; 195 case Syslog.INFO: return INFO; 196 case Syslog.WARNING: return WARNING; 197 case Syslog.ERROR: return ERROR; 198 case Syslog.FATAL: return FATAL; 199 default: return UNKNOWN_LEVEL; 200 } 201 } 202 } 203 | Popular Tags |