如何自动进行日志文件备份

时间:2013-02-21 13:49:51

标签: backup logfile

如果日志文件大小达到阈值级别(例如5MB),如何自动备份日志文件(.txt)。备份文件名应该类似于(log_file_name)_(system_date),并且应该清理原始日志文件(0 KB)。

请帮忙。提前致谢。

1 个答案:

答案 0 :(得分:0)

使用lenght()检查你的日志文件大小。然后检查它是否大于5mb调用extendLogFile()func。

这是c#代码,你可以很容易地转换为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("");
            }
        }


 }