using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace HslCommunication.LogNet { /// /// 单日志文件对象 /// public class LogNetSingle : LogNetBase, ILogNet { private string m_fileName = string.Empty; /// /// 实例化一个单文件日志的对象 /// /// /// public LogNetSingle(string filePath) { LogSaveMode = LogNetManagment.LogSaveModeBySingleFile; m_fileName = filePath; FileInfo fileInfo = new FileInfo(filePath); if(!Directory.Exists(fileInfo.DirectoryName)) { Directory.CreateDirectory(fileInfo.DirectoryName); } } /// /// 单日志文件允许清空日志内容 /// public void ClearLog() { m_fileSaveLock.Enter(); if (!string.IsNullOrEmpty(m_fileName)) { File.Create(m_fileName).Dispose(); } m_fileSaveLock.Leave(); } /// /// 获取单日志文件的所有保存记录 /// /// public string GetAllSavedLog() { string result = string.Empty; m_fileSaveLock.Enter(); if (!string.IsNullOrEmpty(m_fileName)) { if (File.Exists(m_fileName)) { StreamReader stream = new StreamReader(m_fileName, Encoding.UTF8); result = stream.ReadToEnd(); stream.Dispose(); } } m_fileSaveLock.Leave(); return result; } /// /// 获取存储的文件的名称 /// /// protected override string GetFileSaveName() { return m_fileName; } /// /// 获取所有的日志文件数组,对于单日志文件来说就只有一个 /// /// public string[] GetExistLogFileNames() { return new string[] { m_fileName, }; } } }