예제 #1
0
파일: TextFileLog.cs 프로젝트: xiaoyaoju/X
        /// <summary>获取日志文件路径</summary>
        /// <returns></returns>
        private String GetLogFile()
        {
            // 单日志文件
            if (_isFile)
            {
                return(LogPath.GetBasePath());
            }

            // 目录多日志文件
            var logfile = LogPath.CombinePath(FileFormat.F(TimerX.Now)).GetBasePath();

            // 是否限制文件大小
            if (MaxBytes == 0)
            {
                return(logfile);
            }

            // 找到今天第一个未达到最大上限的文件
            var max  = MaxBytes * 1024L * 1024L;
            var ext  = Path.GetExtension(logfile);
            var name = logfile.TrimEnd(ext);

            for (var i = 1; i < 1024; i++)
            {
                if (i > 1)
                {
                    logfile = $"{name}_{i}{ext}";
                }

                var fi = logfile.AsFile();
                if (!fi.Exists || fi.Length < max)
                {
                    return(logfile);
                }
            }

            return(null);
        }