1 package com.protomatter.syslog.xml; 2 3 52 53 import java.io.*; 54 import java.net.*; 55 import java.util.*; 56 import java.text.*; 57 58 import com.protomatter.xml.*; 59 import com.protomatter.syslog.*; 60 import org.jdom.*; 61 62 65 public class TimeRolloverLog_Helper 66 extends BasicLogger_Helper 67 { 68 168 public void configure(Object o, Element e) 169 throws SyslogInitException 170 { 171 super.configure(o, e); 172 173 TimeRolloverLog log = (TimeRolloverLog)o; 174 175 String tmp = e.getChildTextTrim("baseName", e.getNamespace()); 176 if (tmp != null) 177 { 178 log.setBaseFilename(tmp); 179 } 180 else 181 { 182 throw new IllegalArgumentException (MessageFormat.format( 183 Syslog.getResourceString(MessageConstants.XML_MUST_SPECIFY_PARAM_MESSAGE), 184 new Object [] { "baseName" } )); 185 } 186 187 tmp = e.getChildTextTrim("append", e.getNamespace()); 188 log.setAppend("true".equalsIgnoreCase(tmp)); 189 190 tmp = e.getChildTextTrim("autoFlush", e.getNamespace()); 191 log.setAutoFlush("true".equalsIgnoreCase(tmp)); 192 193 log.setFileExtension(e.getChildTextTrim("extension", e.getNamespace())); 194 195 tmp = e.getChildTextTrim("nameFormat", e.getNamespace()); 196 if (tmp != null) 197 log.setNameFormat(tmp); 198 else 199 log.setNameFormat("yyyy.MM.dd-HH.mm.ss"); 200 201 tmp = e.getChildTextTrim("roll", e.getNamespace()); 202 if (tmp != null) 203 { 204 try 205 { 206 int r = Integer.parseInt(tmp); 207 log.setRollType(r); 208 } 209 catch (NumberFormatException x) 210 { 211 if (tmp.equals("ROLL_MINUTELY")) 212 { 213 log.setRollType(TimeRolloverLog.ROLL_MINUTELY); 214 } 215 else if (tmp.equals("ROLL_HOURLY")) 216 { 217 log.setRollType(TimeRolloverLog.ROLL_HOURLY); 218 } 219 else if (tmp.equals("ROLL_DAILY")) 220 { 221 log.setRollType(TimeRolloverLog.ROLL_DAILY); 222 } 223 else if (tmp.equals("ROLL_MONTHLY")) 224 { 225 log.setRollType(TimeRolloverLog.ROLL_MONTHLY); 226 } 227 else if (tmp.equals("ROLL_WEEKLY")) 228 { 229 log.setRollType(TimeRolloverLog.ROLL_WEEKLY); 230 String rollDay = e.getChildTextTrim("weeklyRollDay", e.getNamespace()); 231 if (rollDay != null) 232 { 233 if ("MONDAY".equals(rollDay)) 234 log.setWeeklyRollDay(Calendar.MONDAY); 235 else if ("TUESDAY".equals(rollDay)) 236 log.setWeeklyRollDay(Calendar.TUESDAY); 237 else if ("WEDNESDAY".equals(rollDay)) 238 log.setWeeklyRollDay(Calendar.WEDNESDAY); 239 else if ("THURSDAY".equals(rollDay)) 240 log.setWeeklyRollDay(Calendar.THURSDAY); 241 else if ("FRIDAY".equals(rollDay)) 242 log.setWeeklyRollDay(Calendar.FRIDAY); 243 else if ("SATURDAY".equals(rollDay)) 244 log.setWeeklyRollDay(Calendar.SATURDAY); 245 else if ("SUNDAY".equals(rollDay)) 246 log.setWeeklyRollDay(Calendar.SUNDAY); 247 else 248 throw new IllegalArgumentException (MessageFormat.format( 249 Syslog.getResourceString(MessageConstants.TIMEROLLOVERLOG_BAD_ROLL_DAY_VALUE_MESSAGE), 250 new Object [] { "MONDAY", "SUNDAY" })); 251 } 252 } 253 else 254 { 255 throw new IllegalArgumentException (MessageFormat.format( 256 Syslog.getResourceString(MessageConstants.TIMEROLLOVER_ILLEGAL_ROLL_VALUE_MESSAGE), 257 new Object [] { "roll", "ROLL_MINUTELY", "ROLL_HOURLY", "ROLL_DAILY", "ROLL_MONTHLY", "ROLL_WEEKLY" })); 258 } 259 } 260 } 261 else 262 { 263 throw new IllegalArgumentException (MessageFormat.format( 264 Syslog.getResourceString(MessageConstants.XML_MUST_SPECIFY_PARAM_MESSAGE), 265 new Object [] { "roll" } )); 266 } 267 268 log.rollover(new Date()); 269 } 270 271 public Element getConfiguration(Object o, Element element) 272 { 273 Element e = super.getConfiguration(o, element); 274 275 TimeRolloverLog log = (TimeRolloverLog)o; 276 277 Element file = new Element("baseName"); 278 file.setText(log.getBaseFilename()); 279 e.getChildren().add(file); 280 281 if (log.getFileExtension() != null) 282 { 283 Element ext = new Element("extension"); 284 ext.setText(log.getFileExtension()); 285 e.getChildren().add(ext); 286 } 287 288 Element append = new Element("append"); 289 append.setText(String.valueOf(log.getAppend())); 290 e.getChildren().add(append); 291 292 Element af = new Element("autoFlush"); 293 af.setText(String.valueOf(log.getAutoFlush())); 294 e.getChildren().add(af); 295 296 Element roll = new Element("roll"); 297 if (log.getRollType() == TimeRolloverLog.ROLL_MINUTELY) 298 roll.setText("ROLL_MINUTELY"); 299 if (log.getRollType() == TimeRolloverLog.ROLL_HOURLY) 300 roll.setText("ROLL_HOURLY"); 301 if (log.getRollType() == TimeRolloverLog.ROLL_DAILY) 302 roll.setText("ROLL_DAILY"); 303 if (log.getRollType() == TimeRolloverLog.ROLL_MONTHLY) 304 roll.setText("ROLL_MONTHLY"); 305 if (log.getRollType() == TimeRolloverLog.ROLL_WEEKLY) 306 roll.setText("ROLL_WEEKLY"); 307 e.getChildren().add(roll); 308 309 if (log.getRollType() == TimeRolloverLog.ROLL_WEEKLY) 310 { 311 Element rollDay = new Element("weeklyRollDay"); 312 switch (log.getWeeklyRollDay()) 313 { 314 case Calendar.MONDAY: 315 rollDay.setText("MONDAY"); 316 break; 317 case Calendar.TUESDAY: 318 rollDay.setText("TUESDAY"); 319 break; 320 case Calendar.WEDNESDAY: 321 rollDay.setText("WEDNESDAY"); 322 break; 323 case Calendar.THURSDAY: 324 rollDay.setText("THURSDAY"); 325 break; 326 case Calendar.FRIDAY: 327 rollDay.setText("FRIDAY"); 328 break; 329 case Calendar.SATURDAY: 330 rollDay.setText("SATURDAY"); 331 break; 332 case Calendar.SUNDAY: 333 rollDay.setText("SUNDAY"); 334 break; 335 } 336 e.getChildren().add(rollDay); 337 } 338 339 return e; 340 } 341 } 342 | Popular Tags |