using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace AwInitilizer.Assist { public class EvHttpClientLogger { public static EvHttpClientLogger Instance => _Instance; private static EvHttpClientLogger _Instance = new EvHttpClientLogger(); private EvHttpClientLogger() { if (!Directory.Exists(FolderName)) { Directory.CreateDirectory(FolderName); } } private const string FolderName = "ApiLog"; private const int MaxLogCnt = 10; private string LogFileName = null; internal void StartNewLog(string name) { TryRemoveOneLog(); LogFileName = name + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".txt"; } internal void Log(string mesasage) { if (string.IsNullOrEmpty(LogFileName)) { return; } File.AppendAllText(Path.Combine(FolderName, LogFileName), mesasage + Environment.NewLine); } private void TryRemoveOneLog() { var files = Directory.GetFiles(FolderName).ToList(); if (files.Count < MaxLogCnt) { return; } List fileInfos = new List(); foreach (var file in files) { fileInfos.Add(new FileInfo(file)); } var candidateFile = fileInfos.OrderBy(x => x.LastWriteTimeUtc).First(); candidateFile.Delete(); } } }