DayliLogrotaOutput.java

package eu.javaexperience.log;

import java.io.File;
import java.util.Date;

import eu.javaexperience.text.Format;
import eu.javaexperience.time.TimeCalc;

public class DayliLogrotaOutput extends RotaLogOutput
{
	protected String prefix;
	public DayliLogrotaOutput(String prefix)
	{
		this.prefix = prefix;
	}
	
	@Override
	protected File getNextLogfile()
	{
		return new File(prefix+Format.formatSqlDate(new Date())+".log");
	}
	
	protected long nextCutTime = getNextCutTime();
	
	protected static long getNextCutTime()
	{
		return TimeCalc.setToDate
		(
			new Date(), 0, 0, 0, 24, 0, 0, 0
		).getTime();
	}
	
	@Override
	protected synchronized boolean needCut()
	{
		if(System.currentTimeMillis() >= nextCutTime)
		{
			nextCutTime = getNextCutTime();
			return true;
		}
		
		return false;
	}
}