1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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<FileInfo> fileInfos = new List<FileInfo>();
- foreach (var file in files) {
- fileInfos.Add(new FileInfo(file));
- }
- var candidateFile = fileInfos.OrderBy(x => x.LastWriteTimeUtc).First();
- candidateFile.Delete();
- }
- }
- }
|