1 8 package org.jivesoftware.util.log.output.io.rotate; 9 10 import java.io.File ; 11 import java.text.SimpleDateFormat ; 12 import java.util.Date ; 13 14 29 public class UniqueFileStrategy 30 implements FileStrategy { 31 private File m_baseFile; 32 private File m_currentFile; 33 34 private SimpleDateFormat m_formatter; 35 36 private String m_suffix; 37 38 public UniqueFileStrategy(final File baseFile) { 39 m_baseFile = baseFile; 40 } 41 42 public UniqueFileStrategy(final File baseFile, String pattern) { 43 this(baseFile); 44 m_formatter = new SimpleDateFormat (pattern); 45 } 46 47 public UniqueFileStrategy(final File baseFile, String pattern, String suffix) { 48 this(baseFile, pattern); 49 m_suffix = suffix; 50 } 51 52 public File currentFile() { 53 return m_currentFile; 54 } 55 56 61 public File nextFile() { 62 final StringBuilder sb = new StringBuilder (); 63 sb.append(m_baseFile); 64 if (m_formatter == null) { 65 sb.append(System.currentTimeMillis()); 66 } 67 else { 68 final String dateString = m_formatter.format(new Date ()); 69 sb.append(dateString); 70 } 71 72 if (m_suffix != null) { 73 sb.append(m_suffix); 74 } 75 76 m_currentFile = new File (sb.toString()); 77 return m_currentFile; 78 } 79 } 80 81 | Popular Tags |