как сделать резервную копию файла журнала автоматически

Как автоматически сделать резервную копию файла журнала (.txt), когда его размер достиг порогового уровня, скажем, 5 МБ. Имя файла резервной копии должно быть похоже на (log_file_name)_(system_date), а исходный файл журнала должен быть очищен (0 КБ).

Пожалуйста помоги. Заранее спасибо.


person Debajit Maji    schedule 21.02.2013    source источник
comment
какой у тебя язык программирования? С#, С++...?   -  person Mennan    schedule 21.02.2013


Ответы (1)


Проверьте размер файла журнала, используя length(). Затем проверьте, больше ли он, чем 5 МБ, вызовите функцию extendLogFile().

Это код С#, который вы можете легко преобразовать в java

Проверка размера:

if (size > 400 * 100 * 100)
{
   extendLogFile(Path);
}

Скопируйте старый файл журнала в каталог архива и создайте новый файл журнала:

private static void extendLogFile(string lPath)
{
        string name = lPath.Substring(0, lPath.LastIndexOf("."));
        string UniquName = GenerateUniqueNameUsingDate(); // create a unique name for old log files like '12-04-2013-12-43-00'

        string ArchivePath = System.IO.Path.GetDirectoryName(lPath) + "\\Archive";
        if (!string.IsNullOrEmpty(ArchivePath) && !System.IO.Directory.Exists(ArchivePath))
        {
            System.IO.Directory.CreateDirectory(ArchivePath);
        }

        string newName = ArcivePath + "\\" + UniquName;

        if (!File.Exists(newName))
        {

            File.Copy(lPath, newName + ".txt");

            using (FileStream stream = new FileStream(lPath, FileMode.Create))
            using (TextWriter writer = new StreamWriter(stream))
            {
                writer.WriteLine("");
            }
        }


 }
person Mennan    schedule 08.05.2013