简易的日志器
简单的存放在log.txt文件中
using System; using System.Collections.Generic; using System.Text; using System.Security .Permissions ; using System.IO ; namespace KKCatCore { public class Log { public string message { get; set; } public DateTime date { get; set; } public static List<Log> Data { get; set; } static Log () { if (!File.Exists(Settings.Default.logPath)) File.Create(Settings.Default.logPath); FileIOPermission permission=new FileIOPermission (FileIOPermissionAccess .AllAccess ,Settings .Default .logPath ); permission .Demand (); } public Log(string message, DateTime date) { this.message = message; this.date = date; } public static void Record(string message) { using (StreamWriter sw=new StreamWriter (Settings .Default .logPath )) { sw.WriteLine (message ); sw.WriteLine (DateTime .Now .ToLongTimeString()); sw.Close (); } } public static List<Log> AllLogs() { using (StreamReader sr = File.OpenText(Settings.Default.logPath)) { Data = new List<Log>(); while (!sr.EndOfStream) { Data.Add(new Log(sr.ReadLine(), DateTime.Parse(sr.ReadLine()))); } Data.TrimExcess(); return Data; } } public static string LastMessage() { string mess="No log"; DateTime dt = DateTime.MinValue; foreach (Log l in Data) { if (l.date > dt) { mess = l.message; dt = l.date; } } return mess; } } }
上面的版本中写入记录部分每次都会丢失原来的数据
下面是msdn的原文
using System; using System.IO; class DirAppend { public static void Main(String[] args) { using (StreamWriter w = File.AppendText("log.txt")) { Log ("Test1", w); Log ("Test2", w); // Close the writer and underlying file. w.Close(); } // Open and read the file. using (StreamReader r = File.OpenText("log.txt")) { DumpLog (r); } } public static void Log (String logMessage, TextWriter w) { w.Write("\r\nLog Entry : "); w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString()); w.WriteLine(" :"); w.WriteLine(" :{0}", logMessage); w.WriteLine ("-------------------------------"); // Update the underlying file. w.Flush(); } public static void DumpLog (StreamReader r) { // While not at the end of the file, read and write lines. String line; while ((line=r.ReadLine())!=null) { Console.WriteLine(line); } r.Close(); } }
作者:today4king
出处:https://www.cnblogs.com/jinzhao/archive/2008/12/18/1357609.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架